我的linux的gcc编译器不支持布尔值

时间:2013-03-03 08:28:45

标签: c linux gcc compiler-errors boolean

我正在尝试创建一个返回类型为boolean的函数...程序的语法似乎是正确的,但编译器给出错误....

我包含的头文件是:

#include<stdio.h>
#include<stdlib.h>

我创建的功能是:

34.bool checknull(struct node* node){
35.    if ( node != NULL )
36.        return TRUE;
37.       
38.    return false;
39.}

我在编译时得到的是

bininsertion.c:34:1: error: unknown type name ‘bool’
bininsertion.c: In function ‘checknull’:
bininsertion.c:36:10: error: ‘TRUE’ undeclared (first use in this function)
bininsertion.c:36:10: note: each undeclared identifier is reported only once for each  function it appears in
bininsertion.c:38:9: error: ‘false’ undeclared (first use in this function)

我用小写和大写字母都试过“TRUE,false”,但似乎没有用......

3 个答案:

答案 0 :(得分:20)

如果您需要<stdbool.h>booltrue,则应该包含false。它也是true,而不是TRUE


如果您不想加入stdbool.h,可以使用略显丑陋的_Bool

答案 1 :(得分:-1)

bool不是数据类型。
它在Visual Studio中运行良好..因为它是一个微软特定的东西..
只需加入stdbool.h,它就可以了。)

答案 2 :(得分:-2)

原始答案

尝试包含cstdio和cstdlib。可能没有任何区别,但我也一直注意到这些奇怪的错误。以前工作的东西,不再有用

修改

在C中,false表示为0,而true表示为非零值。

从本质上讲,您可以像这样推送自己的bool数据类型

typedef enum {false, true} bool;

然后您可以像使用应用程序一样使用它。

您还可以添加stdbool.h,其中应该包含与枚举建议类似的内容