void move_paddle(PADDLE pad, bool alongX)
{
if(alongX!=TRUE)
{
if((pad.py+pad.length/2)>=B || (pad.py-pad.length/2)<=BB)
pad.pvx*= -1;
}
else if((pad.px+pad.length/2)>=A || (pad.py-pad.length/2)<=AA)
pad.pvx*= -1;
}
实际错误是什么? M无法通过。
答案 0 :(得分:2)
标准C语言中没有TRUE
个关键字。最有可能的是,这是一个你遗漏的宏宣言。从何处获取取决于您使用的编译器和库。如果找不到它的定义,那么在使用TRUE之前(在文件的开头,但是在所有包含之后)放置此代码将解决问题:
#ifndef FALSE
#define FALSE (0)
#endif
#ifndef TRUE
#define TRUE (!FALSE)
#endif
答案 1 :(得分:2)
由于您使用的是bool
数据类型,因此您似乎在C99中使用stdbool.h
。如果是这种情况,那么您应该将TRUE
更改为true
,扩展为1
。
答案 2 :(得分:1)
我猜测如果编译器说你的错误是在这个范围内没有声明TRUE,那就是实际的错误。也许你应该定义TRUE。另外,正如我在评论中所指出的那样(在我看过标题之前),你最好甚至不在这个片段中使用TRUE
。与C中的TRUE
进行比较可能会导致难以调试的细微错误。 if (!alongX)
表示您想说的内容,我发现它比if (alongX == FALSE)
更清晰。
答案 3 :(得分:0)
你应该在c中使用类似int而不是bool的东西,只要它的值不是0就是真的,我会把它更改为
void move_paddle(PADDLE pad, int alongX)
{
if(!alongX)
{
if((pad.py+pad.length/2)>=B || (pad.py-pad.length/2)<=BB)
pad.pvx*= -1;
}
else if((pad.px+pad.length/2)>=A || (pad.py-pad.length/2)<=AA)
pad.pvx*= -1;
}