我希望在我的系统上找到_Bool定义,因此对于缺少它的系统,我可以实现它。我在这里和其他网站上看到过对它的各种定义,但我想检查一下系统中的权威定义。
小问题,因为我找不到定义_Bool的位置,甚至找不到stdbool.h
mussys@debmus:~$ find /usr/include/* -name stdbool.h
/usr/include/c++/4.3/tr1/stdbool.h而/usr/include/*和/usr/include/*/*上用于_Bool的grep也找不到它。
那么它在哪里呢?
发布于 2009-11-01 19:06:34
_Bool是一种内置类型,所以不要期望在头文件中找到它的定义,即使是系统头文件。
话虽如此,根据您正在搜索的路径来猜测您的系统,您是否在/usr/lib/gcc/*/*/include中查找过?
我的“真正的”stdbool.h住在那里。不出所料,它的bool to be _Bool。因为_Bool是编译器原生的类型,所以在头文件中没有对它进行定义。
发布于 2009-11-01 19:20:15
作为备注:
在C99中定义了_Bool。如果您使用以下工具构建您的程序:
gcc -std=c99你可以期待它就在那里。
发布于 2009-11-01 20:31:56
其他人已经回答了关于_Bool位置和查找C99是否被声明的问题……但是,我对每个人自己做的声明并不满意。
为什么不完全定义类型呢?
typedef enum { false, true } bool;https://stackoverflow.com/questions/1656874
复制相似问题