C++中BOOL 与bool的区别
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比较好。大家觉得呢?
问题点数:0、回复次数:7Top
1 楼weihao_dodo(浩哥)回复于 2005-02-04 19:53:50 得分 0
小弟初来此地,还请各位前辈多多关照!!Top
2 楼crybird(寒号鸟)回复于 2005-02-04 20:40:48 得分 0
void f(int) {/*….*/} // ok
void f(BOOL) {/*….*/} // 错误,重新声明
------------------
因为typedef int BOOL;
所以上面两个函数的参数是一样的啊,都是一个整形
另返回值和函数名一样,所以,编译器认为是一个函数 - 两个函数体Top
3 楼crybird(寒号鸟)回复于 2005-02-04 20:42:51 得分 0
BOOL bool一样好用啊,
我在写单独一个函数的时候用bool,
在对话框和类中的时候,喜欢用BOOL
其实一样用拉Top
4 楼nbb()回复于 2005-02-04 20:53:01 得分 0
BOOL is M$'sTop
5 楼yuhan_0110(欲寒)回复于 2005-02-05 09:44:35 得分 0
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++会帮你做隐式转换。
Top
6 楼michaelz2001(小小强)回复于 2005-02-05 13:36:03 得分 0
C++标准只有bool没有BOOLTop
7 楼ioriogami(八极推手er——VF铁杆非伪)回复于 2005-02-05 13:57:01 得分 0
C++中int 与bool的区别Top




