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) |
我试过用小写和大写字母写"对,错",但似乎不起作用…
如果你想要
如果你不想包括
bool不是数据类型。它在Visual Studio中工作正常。因为这是微软特有的东西。只包括
原始答案
尝试包括cstdio和cstdlib。可能没什么区别,但我也注意到了我的编译器中的这些奇怪的错误。过去有用的东西,不再有用
在C语言中,false由0表示,而true由任何非零的东西表示。
本质上,您可以像这样滚动自己的
1 | typedef enum {false, true} bool; |
然后你可以像在你的应用程序中一样使用它。
您也可以只包括