关于C#:我的linux的gcc编译器不支持布尔值

My linux's gcc compiler not supporting boolean values

本问题已经有最佳答案,请猛点这里访问。

我正在尝试使返回类型为布尔值的函数…程序的语法似乎是正确的,但编译器给出了错误…

我包含的头文件是:

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

我创建的函数是:

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

我在编译时得到的是

1
2
3
4
5
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)

我试过用小写和大写字母写"对,错",但似乎不起作用…


如果你想要booltruefalse的话,你应该包括。另外是true,不是true

如果你不想包括stdbool.h,你可以使用稍微难看的_Bool


bool不是数据类型。它在Visual Studio中工作正常。因为这是微软特有的东西。只包括stdbool.h就行了。)


原始答案

尝试包括cstdio和cstdlib。可能没什么区别,但我也注意到了我的编译器中的这些奇怪的错误。过去有用的东西,不再有用

编辑

在C语言中,false由0表示,而true由任何非零的东西表示。

本质上,您可以像这样滚动自己的bool数据类型。

1
typedef enum {false, true} bool;

然后你可以像在你的应用程序中一样使用它。

您也可以只包括stdbool.h,它应该具有类似于枚举建议的内容。