VARIANT 表示布尔值“真”, 不能 v.boolVal=true

学生:我想用 VARIANT 表示布尔值“真”,如何做?
 
  老师:VARIANT v; v.vt=VT_BOOL; v.boolVal=VARIANT_TRUE;

  学生:这么麻烦?我能不能 v.boolVal=true; 这样写?

  老师:不可以!因为

类型字节长度假值真值
bool1(char)0(false)1(true)
BOOL4(int)0(FALSE)1(TRUE)
VT_BOOL2(short int)0(VARIANT_FALSE)-1(VARIANT_TRUE)

  所以如果你 v.boolVal=true 这样赋值,那么将来 if(VARIANT_TRUE==v.boolVal) 的时候会出问题(-1 != 1)。但是你注意观察,任何布尔类型的“假”都是0,因此作为一个好习惯,在做布尔判断的时候,不要和“真值”相比较,而要与“假值”做比较。

 

 

http://dev.yesky.com/47/2022047_1.shtml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值