繁体   English   中英

使用未声明的标识符'true'

[英]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 要使用它,有两种解决方案:

  1. 在C99中编译并包含<stdbool.h>
  2. 自己定义此标识符。

但是, 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM