读书人

关于宏定义的BOOL和bool类型的有关问题

发布时间: 2012-04-10 21:03:56 作者: rapoo

关于宏定义的BOOL和bool类型的问题
我看别人的c++代码里用宏定义的int型的BOOL,定义1为TRUE,定义0为FALSE。

c++不是有bool类型变量吗,为什么要用宏定义呢?

[解决办法]
1、类型不同
BOOL为int型
bool为布尔型
2、长度不同
bool只有一个字节
BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
bool取值false和true,是0和1的区别
BOOL取值FALSE和TRUE,是0和非0的区别
[解决办法]
兼容C!
1、类型不同
BOOL为int型
bool为布尔型
2、长度不同
bool只有一个字节
BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
bool取值false和true,是0和1的区别
BOOL取值FALSE和TRUE,是0和非0的区别 二:bool是标准C++数据类型,可取值true和false。单独占一个字节,
如果数个bool对象列在一起,可能会各占一个bit,这取决于编译器。

BOOL是微软定义的typedef int BOOL。与bool不同
[解决办法]
c语言里没有bool类型
bool f(); 这样的函数无法通过c语言的编译器
所以要 #define bool int

而如果以后你写c++的代码时也要用到这个f函数的话
只要再前面加上
#undef bool
就可以了

反过来,c++的函数,移植到c语言上也一样,加上个#define就可以了

读书人网 >C++

热点推荐