在网上看到有人说用BOOL比用bool有效率。不明白所以上网查了一下,现在总结一下。不知道说的是否正确。
-------------------------------------------------------------------------------
首先在vc中写代码测试这两个类型的大小,代码如下:
CString temp;
temp.Format("%d",sizeof(bool));
TRACE("/r/n-----------------------/r/n");
TRACE("In vc++ bool's size is:");
TRACE(temp);
TRACE("/r/n-----------------------/r/n");
temp.Format("%d",sizeof(BOOL));
TRACE("/r/n-----------------------/r/n");
TRACE("In vc++ BOOL's size is:");
TRACE(temp);
TRACE("/r/n-----------------------/r/n");
运行结果如下:
-----------------------
In vc++ bool's size is:1
-----------------------
-----------------------
In vc++ BOOL's size is:4
-----------------------
由以上可知 BOOL占4个字节,bool占1个字节。
我原来以为计算机处理1个字节比处理4个字节快呢。其实不时这样的。
由于现在的CPU都是32位的,所以CPU一次处理4个字节,那么处理1个字节需要额外的处理。
所以效率就低。
typedef char bool
typedef DWORD BOOL