BOOL和bool的区别

一、 
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和非0的区别 
BOOL取值FALSE和TRUE,是0和1的区别 
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;

时间: 2024-10-10 06:18:10

BOOL和bool的区别的相关文章

c++ 中 BOOL与bool TRUE与true FALSE与false 区别 (转载)

http://blog.chinaunix.net/uid-28458801-id-3941112.html FALSE/TRUE与false/true的区别 1.FALSE/TRUE与false/true的区别: false/true是标准C++语言里新增的关键字,而FALSE/TRUE是通过#define,这要用途 是解决程序在C与C++中环境的差异,以下是FALSE/TRUE在windef.h的定义: #ifndef FALSE #define FALSE 0 #endif #ifndef

OC -- BOOL与bool的区别

下面的情况,BOOL与bool可以通用 BOOL(bool)  b1 = YES;   // 输出1 BOOL(bool) b2 = 1;    // 输出1 BOOL(bool) b3 = NO;   // 输出0 BOOL(bool) b4 = 0;    // 输出0 BOOL与bool的区别如下: BOOL b5 = 2;   // 输出2 BOOL b6 = -2: // 输出-2 bool b7 = 2;   // 输出1 bool b8 = -2;    // 输出1

C++中UINT32和INT32以及int,BOOL和bool的区别

在AndroidHAL层开发中,编写C++代码的时候,遇到了数据类型的困扰,经过查找资料,总结如下: 1.UNIT32和int以及INT32的区别: (1).int默认是signed int.也就是有符号整型,最高位是符号位.数据只占31位. (2).INT32是unsigned int的别名.typedef unsigned int UINT32 unsigned int是无符号整型,最高位也是数据位,数据占32位. (3).INT32表示32位有符号的整数. (4).UINT32和INT32

C#中bool和Boolean的区别

简单介绍下Boolean和bool的区别: 1.bool是基本值类型,Boolean是对象. 2.bool是Boolean的别名,bool是C#中的,Boolean是.net Framework中的. MSDN中解释bool与Boolean的关系是:bool关键字是System.Boolean的别名.实际使用无任何差别.它们的成员也是一样的. 最后总结:bool就像你的乳名,爹妈及内部所属成员都认识,Boolean就像你的学名.大家都认识.不过不管按照乳名还是学名称呼你,最终目的是一样的,称呼的

bool和BOOL类型知识集合

知识点一.C语言中有bool类型吗? 转自http://blog.csdn.net/liuqiqi677/article/details/6703615 之前一直都没有注意到,最近在用C语言写DSP算法时,偶然间发现我函数中定义的bool类型的变量在VC6.0(我主要用它来检查一下语法错误)中编译居然报错了,说是bool类型没有定义.用了这么久的C和C++了,一直觉得bool这种基本类型,应该是C语言内置的类型,怎么会没有定义呢?事实证明,我的想法完全错误了. 有了网络,一切问题都变得那么容易了

c++中,bool与int 的区别

菜鸟一枚,为了观察区别,特地运行了下面几个语句 1 /*阅读程序回答问题, 2 1.bool类型的false对应数值?true呢? 3 2.非0整数对应bool型的?0呢? 4 */ 5 #include<iostream> 6 #include<cstring> 7 using namespace std; 8 int main(){ 9 cout<<(2>1)<<(2==1)<<endl; 10 bool b=1<2;cout&l

js和php对bool值的判断区别

PHP中 当转换为 boolean 时,以下值被认为是 FALSE : 布尔值 FALSE 本身 整型值 0(零) 浮点型值 0.0(零) 空字符串,以及字符串 "0" 不包括任何元素的数组 不包括任何成员变量的对象(仅 PHP 4.0 适用) 特殊类型 NULL(包括尚未赋值的变量) 从空标记生成的 SimpleXML 对象 所有其它值都被认为是 TRUE (包括任何资源). ------------------------------------------------------

Objective-C中的BOOL和bool

BOOL t3=1024; if (t3) { NSLog(@"yes"); }else{ NSLog(@"no"); } 输出: Test[1524:60b] no typedef signed char BOOL; BOOL 使用了一个8 位(一个字节)的整数进行表示,低八位8 位全0 就是NO.所以非0数并非就是BOOL中的YES,但是0就一定是NO:建议BOOL就只使用YES和NO: 再来看看bool; bool t3=1024; if (t3) { NSL

避免使用vector&lt;bool&gt;

 作为一个STL容器,vector<bool>只有两点不对.首先,它不是一个STL容器.其次,它并不存储bool.除此之外,一切正常. 一个对象要成为容器,就必须满足C++标准中列出的所有条件,其中一个条件是,如果c是包含对象T的容器,而且c支持operator[],那么下面的代码必须能够被编译: T *p = &c[0]; 换句话说,如果用operator[]取得了container<T>中的一个T对象,那么就可以通过取它的地址得到一个指向该对象的指针.所以,如果ve