2508C++,奇怪的保留值
原文
不久前,我解释了为什么在十进制
结构的开头有一个奇怪的wReserved
值.MarkusGrohs
在评论中说明,decVal
覆盖在变量
之上的方式表明,必须小心设置字段的顺序
.
因为
DECIMAL value = [ some value ] ;
VARIANT var;
VariantClear(&var);
则因为十进制(DECIMAL)
中的wReserved
会覆盖它,你必须记住最后
设置vt
.
//错
var.vt = VT_DECIMAL;
var.decVal = value;//哎呀,`wReserved`会覆盖`var.vt`.//更好
var.decVal = value;//`wReserved`覆盖`var.vt`
var.vt = VT_DECIMAL;//但立即修复它
十进制
中的额外wReserved
就像一个处理日常事务时佩戴
的笨重的背包.你一般会忘记你戴着它,直到遇见坑.