[转载]BOOL和bool的区别
转自:http://www.cppblog.com/Lee7/archive/2008/12/14/69394.html
一、 
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不同,它是一个三值逻辑, 
TRUE/FALSE/ERROR,返回值为>0的整数为TRUE,0为FALSE,-1为ERROR。 
Win32
API中很多返回值为BOOL的函数都是三值逻辑。比如GetMessage(). 
三: 
大BOOL和小bool之间的区别: 
1、类型不同 
BOOL为int型 
bool为布尔型 
2、长度不同 
bool只有一个字节 
BOOL长度视实际环境来定,一般可认为是4个字节 
3、取值不同 
bool取值false和true,是0和1的区别 
BOOL取值FALSE和TRUE,是0和非0的区别 
4、例子 
bool x=3;  //告警  
bool x=1;  //正确  
BOOL x=3;  //正确  
BOOL x=3.3;  //告警  
注:windows为了兼容问题定义的基础变量。 
typedef unsigned long    
   DWORD;     
typedef int    
     
     
 BOOL;          
typedef unsigned char    
   BYTE;     
typedef unsigned short    
 WORD;    
typedef float    
     
   
 FLOAT;         
typedef FLOAT    
     
   
 *PFLOAT;         
typedef BOOL near    
     
 *PBOOL;       
typedef BOOL far    
     
 *LPBOOL;       
typedef BYTE near    
     
 *PBYTE;       
typedef BYTE far    
     
 *LPBYTE;       
typedef int near    
     
 *PINT;       
typedef int far    
     
   *LPINT;       
 
                    
                 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号