当前位置:
首页 >
BOOL与bool的区别(bool不是c的关键字,c++中bool也不是int)
发布时间:2025/3/20
36
豆豆
生活随笔
收集整理的这篇文章主要介绍了
BOOL与bool的区别(bool不是c的关键字,c++中bool也不是int)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
typedef int BOOL;
#define FALSE 0
#define TRUE 1
不能完全重载(BOOL的本质就是int),如:
//file.h void f(int ); // ok
void f(BOOL); // ok //
file.cpp
void f(int) {/*….*/} // ok
void f(BOOL) {/*….*/} // 错误,重新声明
bool在C++里是占用1字节,而BOOL是int类型,int类型的大小是视具体环境而定的;所以来说:false/true只占用1个字节,而 TRUE/FALSE视具体环境而言.
以下是BOOL在windef.h中的定义:
typedef int BOOL;
false/true是标准C++语言里新增的关键字,而FALSE/TRUE是通过#define,用途是解决程序在C与C++中环境的差异,以下是FALSE/TRUE在windef.h的定义:
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
也就是说FALSE/TRUE是int类型,而false/true是bool类型;所以两者不一样的,只不过我们在使用中没有这种感觉,因为C++会帮你做隐式转换。
linux 中c++ 编译器要用g++,否则编译器不认识bool类型。
总结
以上是生活随笔为你收集整理的BOOL与bool的区别(bool不是c的关键字,c++中bool也不是int)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 灵活而又可怕的params参数数组
- 下一篇: 【Visual C++】游戏开发笔记之五