gad*_*tmo 26 c compiler-errors
为什么我收到此错误:
infinite.c:5:12: error: use of undeclared identifier 'true'
while (true) {
1 error generated.
make: *** [infinite] Error 1
Run Code Online (Sandbox Code Playgroud)
...当我尝试为无限循环编译这个简单的代码时?
#include <stdio.h>
int main(void) {
int x = 0;
while (true) {
printf("%i\n", x);
}
}
Run Code Online (Sandbox Code Playgroud)
md5*_*md5 36
true默认情况下不声明标识符.要使用它,有两种解决方案:
<stdbool.h>.然而,无限循环for (;;)通常被认为是更好的风格.
Ada*_*der 18
C没有内置的布尔类型.所以它不知道是什么true.你必须以这种方式自己声明它:
#define TRUE 1
#define FALSE 0
[...]
while (TRUE) {
[...]
}
Run Code Online (Sandbox Code Playgroud)
包含 stdbool.h 以使用 C99 布尔值。
如果您想坚持使用 C89,请自行定义:
typedef enum
{
true=1, false=0
}bool;
Run Code Online (Sandbox Code Playgroud)