我正在尝试创建一个返回类型为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”,但似乎没有用......
答案 0 :(得分:20)
如果您需要<stdbool.h>
,bool
和true
,则应该包含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
,其中应该包含与枚举建议类似的内容