社区
C++ 语言
帖子详情
关于宏定义的BOOL和bool类型的问题
yun1st
2009-04-02 09:19:35
我看别人的c++代码里用宏定义的int型的BOOL,定义1为TRUE,定义0为FALSE。
c++不是有bool类型变量吗,为什么要用宏定义呢?
...全文
1010
10
打赏
收藏
关于宏定义的BOOL和bool类型的问题
我看别人的c++代码里用宏定义的int型的BOOL,定义1为TRUE,定义0为FALSE。 c++不是有bool类型变量吗,为什么要用宏定义呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lihaidechaoren
2012-05-18
打赏
举报
回复
[Quote=引用 7 楼 的回复:]
引用 2 楼 xxweilw 的回复:
自我感觉:
1.bool不能用在vector里面,BOOL可以用在vector里。
2.BOOL的定义符合c++的判断,跟0比较非0返回true,0返回false
为什么说bool不能用在vector里面???
[/Quote]
bool可以用在vector里面,而且比起char可以节省7/8的内存。可能以前vector的实作不让bool用在vector里面吧。
[Quote=引用 9 楼 的回复:]
bool里的true要宏定义吗?
[/Quote]
不需要,是c++定义好了的关键字。
ctzhenghua
2012-03-16
打赏
举报
回复
bool里的true要宏定义吗?
十八道胡同
2009-04-02
打赏
举报
回复
学习
qzl123666
2009-04-02
打赏
举报
回复
[Quote=引用 2 楼 xxweilw 的回复:]
自我感觉:
1.bool不能用在vector里面,BOOL可以用在vector里。
2.BOOL的定义符合c++的判断,跟0比较非0返回true,0返回false
[/Quote]
为什么说bool不能用在vector里面???
wjb_yd
2009-04-02
打赏
举报
回复
c语言里没有bool类型
bool f(); 这样的函数无法通过c语言的编译器
所以要 #define bool int
而如果以后你写c++的代码时也要用到这个f函数的话
只要再前面加上
#undef bool
就可以了
反过来,c++的函数,移植到c语言上也一样,加上个#define就可以了
liliangbao
2009-04-02
打赏
举报
回复
兼容C!
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不同
mengde007
2009-04-02
打赏
举报
回复
1、类型不同
BOOL为int型
bool为布尔型
2、长度不同
bool只有一个字节
BOOL长度视实际环境来定,一般可认为是4个字节
3、取值不同
bool取值false和true,是0和1的区别
BOOL取值FALSE和TRUE,是0和非0的区别
mengde007
2009-04-02
打赏
举报
回复
BOOL型一般用在windows程序设计时
xxweilw
2009-04-02
打赏
举报
回复
自我感觉:
1.bool不能用在vector里面,BOOL可以用在vector里。
2.BOOL的定义符合c++的判断,跟0比较非0返回true,0返回false
wuyu637
2009-04-02
打赏
举报
回复
C 语言没有提供标准的布尔类型, 部分因为选一个这样的类型涉及最好由 程序员决定的空间/时间折衷。 (使用 int 可能更快, 而使用 char 可能更节省数据空间。然而, 如果需要和 int 反复转换, 那么小类型也可能生成 更大或更慢的代码。)
======================================
我猜是为了兼容c语言。
MT5 常用函数集成库编写教学不定期持续更新
MT5常用函数集成库编写(不定期持续更新)1.主要面向有一定基础的学员;2.想编写EA苦于不知道如何下手的学员!3.能看懂代码的学员!4.不啰嗦直接上干货!5.固定框架式编程!6.面向对象,面向函数式编程! //---//--- 交易.追踪止损(Symbol(),追踪点值,magic号码); 指标.句柄至数组(zh,中,0,10);
bool
在中枢之上=iLow(Symbol(),应用周期,1)>中[0]&&iLow(Symbol(),应用周期,2)>中[0]&&iLow(Symbol(),应用周期,3)>中[0];
bool
在中枢之下=iHigh(Symbol(),应用周期,1)
bool
三连阳=交易.三连阴阳判断(Symbol(),应用周期,1,2);
bool
三连阴=交易.三连阴阳判断(Symbol(),应用周期,1,1);
bool
二连阳=交易.二连阴阳判断(Symbol(),应用周期,1,2);
bool
二连阴=交易.二连阴阳判断(Symbol(),应用周期,1,1); int 多持仓单数=交易.持仓单数统计(Symbol(),magic号码,POSITION_TYPE_BUY); int 空持仓单数=交易.持仓单数统计(Symbol(),magic号码,POSITION_TYPE_SELL); double 收0=iClose(Symbol(),应用周期,0); double 收1=iClose(Symbol(),应用周期,1); double 收2=iClose(Symbol(),应用周期,2);
C语言
宏定义
的方式实现“
bool
”数据
类型
的功能
C语言中默认不支持“
bool
”数据
类型
。 若想要使用,需要引用“std
bool
.h”头文件。 这个头文件需要从网上下载或者自己手动建立(自行百度)。这里介绍一种使用
宏定义
的方式来实现“
bool
”数据
类型
的功能作用,示例代码如下: #include <stdio.h>#define
bool
int #define true 1 #define false 0int main() {
bool
35.【C/C++ 枚举(
bool
)
类型
和
宏定义
(超详细)】
让我们认识枚举和
宏定义
关于
BOOL
与
bool
关于
BOOL
和
bool
,最基本的描述: 1.
类型
不同,
bool
是布尔型,而
BOOL
就是int型; 2.长度不同,
bool
是一个字节,而
BOOL
是int的长度; 3.取值不同,
bool
只有true和false,而
BOOL
理论上就可以取所有int值,但是既然是
BOOL
就单独给
宏定义
了两个值TRUE(1),FALSE(0),但在Win32 API中很多返回值为
BOOL
的函数都是三值逻辑(TRUE/
C++ 语言
64,661
社区成员
250,508
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章