signed char getDirection();
的函数,返回值为1代表“前进”,0代表“静止”,-1代表“后退”。
if(getDirection() == -1) { ... }
失败了。好的,我明白为什么会失败。但是我就是找不到如何使它工作的方法!我尝试将左侧转换为(int)
,将右侧转换为(signed char)
,但还是没有效果...
编辑:
signed char a = getDirection();
printf("%d\n",(int) a);
printf("%d\n",(int) getDirection());
结果:
-1
255
编辑2:按照要求:
const signed char getDirection(uchar d)
{
if(d >= config.directional_inputs.channelCount) return -2;
return shm->input_state.directional_inputs[d].direction;
}
printf("val: %d, comparison: %d", getDirection(), (getDirection() == DIRECTION_BACK) );
,其中常量为#define DIRECTION_BACK -1
。 - SF.getDirection()
是否真的返回了 -1。展示一下你的printf
输出结果。同时也展示一下你的实际代码,可能只是漏掉了一个分号。 - Jabberwockyconst signed char getDirection(uchar d);
? - Serge Ballesta