C语言中枚举类型有Bool类型吗

在C语言中枚举类型枚举类型 与 int類型一样,是4个字节可以把enum类型看成特殊的int型数据

点击(此处)折叠或打开

点击(此处)折叠或打开

Linux下的编译器gcc或者g 都不支持bool类型的變量因为C语言中枚举类型本来是没有bool类型,只是有些编译器中自行添加了bool类型

在linux下c语言程序中一般通过int类型来代替bool类型。但是还有一丅方法可以使用:

需要注意的是 枚举类型在linux和windows环境下的区别:

enum声明是一样的;

但是enum变量的定义不同即在linux下必须使用enum enum名称变量名;就算是紦枚举类型作为函数返回值类型时也必须这样使用,

在window下除了上述跟linux下一样之外还可以将enum去掉直接使用,即enum名称变量名称;

枚举变量的賦值、比较不同即linux下可以直接将枚举变量和整数直接进行比较、赋值等操作,

但是windows下如果将整数赋值给枚举类型变量时,必须在前面加上强制类型转换即变量名=(enum名称)整数;

今天在linux下编了一个C程序,用到了bool类型在编译的程序的时候出现以下错误:

查找了半天,发現要包含stdbool.h头文件,原因如下:

在C99中可以直接使用_Bool表示布尔类型(而我使用的是bool),但不可以直接使用false和true,要自己定义例如:

在定义了true和false之後才可以直接使用。

头文件stdbool.h中对布尔类型进行了扩展,增加了关键字bool,而且定义了false和true的宏所以包含了stdbool.h头文件便可以直接使用bool了

加载中,請稍候......

可以的c语言在c99标准中增加了bool类型,需要调用头文件stdbool.h来使用

我要回帖

更多关于 C语言中枚举类型 的文章

 

随机推荐