BOOL与bool,不是一家人
来源:互联网 发布:php用什么软件开发 编辑:程序博客网 时间:2024/06/08 20:05
在VisualStudio,经常有很多BOOL和bool穿梭在代码中,而这大小写的细微差异,却导致他们的实质不一样了。我们先来分析下面这个例子:
程序如下:......CFileFind finder;bool bWorking =finder.FindFile("c:\\文件.txt");......编译提示:warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)查询MSDN CFileFind::FindFile (MFC):virtual BOOL FindFile( LPCTSTR pstrName = NULL, DWORD dwUnused = 0 ); 你会发现FindFile函数的返回值是BOOL类型,却不是bool类型,因此把代码中的bool改为BOOL即可解决。可为什么会出现这样的情况呢?其实,BOOL类型在windef.h头文件中被定义,typedef int BOOL,其实际类型为int。在<wtypes.h>中,typedef long BOOL。而bool是标准C++数据类型。换句话说,BOOL其实就是int型变量,与布尔型bool没有什么关系。 在这里,函数返回了一个int类型的值,如果我们使用bool类型来接收,那么编译器当然会提示错误。
区别的详细比较
- 类型不同:bool是基本数据类型,BOOL被定义为基本数据类型int
- 长度不同:bool只占一个字节,BOOL长度视实际环境来定,一般可认为是4个字节
- 取值不同:bool取值false和true,BOOL是一个三值逻辑(TRUE/FALSE/ERROR)
C99新增类型 _Bool
C99把C语言原生的布尔类型带来了,同时增添的关键字还有_Complex,_Imaginary等。这里我也不去研究了,有兴趣的朋友可以查看百科。 1 0
- BOOL与bool,不是一家人
- vc中的BOOL不是bool
- BOOL与bool区别
- BOOL与bool区别
- bool与BOOL
- BOOL与bool不同
- BOOL与bool区别
- 关于BOOL与bool
- bool?与bool转化
- BOOL与bool区别
- BOOL与bool区别
- bool与BOOL
- bool 与 BOOL
- BOOL
- bool
- bool
- bool
- bool
- POJ 2186 Tarjan
- hiho 31 扫雷二
- VS用C语言连接SQL Server解决办法
- ListView
- RxJava学习资料及操作符总览
- BOOL与bool,不是一家人
- NioSocket实现HTTP协议
- 网络a、b、c类ip地址的区别
- [Robotics: Aerial Robotics][quiz]2.1
- activiti 配置节点 连线信息获取
- ajax 请求的数据类型
- 【codevs4632】【BZOJ4326】运输计划,链剖+二分+差分
- 15 电气 齐振昊 VB中三位数乘一位数
- opengl学习之二:opengl版HellowWord