[英]Use of undeclared identifier 'true'
为什么我收到此错误:
infinite.c:5:12: error: use of undeclared identifier 'true'
while (true) {
1 error generated.
make: *** [infinite] Error 1
...当我尝试为无限循环编译这个简单的代码时?
#include <stdio.h>
int main(void) {
int x = 0;
while (true) {
printf("%i\n", x);
}
}
默认情况下不声明标识符true
。 要使用它,有两种解决方案:
<stdbool.h>
。 但是, for (;;)
的无限循环通常被认为是更好的风格。
C没有内置的布尔类型。 所以它不知道什么true
是。 你必须以这种方式自己声明它:
#define TRUE 1
#define FALSE 0
[...]
while (TRUE) {
[...]
}
包括stdbool.h以使用C99布尔值。
如果你想坚持使用C89自己定义它:
typedef enum
{
true=1, false=0
}bool;
您收到此错误是因为您没有在C中定义true和false的值。您可以通过向代码中添加几条简单的行来执行此操作,如下所示:
#define FALSE 0
#define TRUE 1 // Option 1
#define TRUE !FALSE // Option 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.