[Windows编程] C++中 bool,BOOL ,VARIANT_BOOL 的区别

本文探讨了Windows环境下BOOL类型的多种实现形式,包括C++标准的小写bool类型、Windows定义的大写BOOL类型以及COM使用的VARIANT_BOOL类型。文中详细分析了这三种类型在长度及TRUE/FALSE值上的区别,并提醒开发者在相互转换时需注意这些差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上篇,继续讨论BOOL变量。 Windows 中BOOL变量常见的好几种类型:小写的bool,大写的BOOL ,还有VARIANT_BOOL 。

 

小写的bool 的是C++ 标准定义的布尔类型, 各个编译器处理的方式不同,Visual C++ 把bool 定为一个字节。小写的truefalse 也都是C++ 标准定义的关键字。

 

大写的BOOL 是Windows 里面定义的布尔类型,实质上int, 在 windows 头文件面有定义:

 

typedef int BOOL;

#define TRUE 1
#define FALSE 0

VARIANT_BOOL 是COM 使用的布尔类型, 其实质上是 short 类型:

 

typedef short VARIANT_BOOL;

#define VARIANT_TRUE ((VARIANT_BOOL)-1)

#define VARIANT_FALSE ((VARIANT_BOOL)0)


可以看出, 3中BOOL类型的长度不一样,而且TRUE 和 FALSE 的值也不同,在相互转换的时候需要注意。

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值