C++中BOOL 与bool的区别

仁者安仁 2005-02-04 07:52:22
C++中BOOL 与bool的区别:
BOOL 定义
typedef int BOOL;
#define FALSE 0
#define TRUE 1
不能完全重载,如:
//file.h
void f(int ); // ok
void f(BOOL); // ok
// file.cpp
void f(int) {/*….*/} // ok
void f(BOOL) {/*….*/} // 错误,重新声明
而bool(false,true)是C++内置的类型,可以避免上述的问题。
因此觉得大家以后写程序都用bool比较好。大家觉得呢?
...全文
377 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccnyou 2010-06-20
  • 打赏
  • 举报
回复
所以我喜欢bool
ccnyou 2010-06-20
  • 打赏
  • 举报
回复
我一向都乱用,文件名用.c时BOOL,是.cpp时用bool

bool ba;
BOOL bb;
yuhan_0110 2005-02-05
  • 打赏
  • 举报
回复
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++会帮你做隐式转换。

io(王飞) 2005-02-05
  • 打赏
  • 举报
回复
C++中int 与bool的区别
michaelz2001 2005-02-05
  • 打赏
  • 举报
回复
C++标准只有bool没有BOOL
nbb 2005-02-04
  • 打赏
  • 举报
回复
BOOL is M$'s
  • 打赏
  • 举报
回复
BOOL bool一样好用啊,
我在写单独一个函数的时候用bool,
在对话框和类中的时候,喜欢用BOOL
其实一样用拉
  • 打赏
  • 举报
回复
void f(int) {/*….*/} // ok
void f(BOOL) {/*….*/} // 错误,重新声明
------------------
因为typedef int BOOL;
所以上面两个函数的参数是一样的啊,都是一个整形
另返回值和函数名一样,所以,编译器认为是一个函数 - 两个函数体
仁者安仁 2005-02-04
  • 打赏
  • 举报
回复
小弟初来此地,还请各位前辈多多关照!!

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧