使用-1将所有位设置为true是否安全?我已经看到这种模式在C&C ++中使用了很多。unsigned int flags = -1; // all bits are true这是一个很好的便携式方法吗?或正在使用0xffffffff或~0更好?
3 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
unsigned int flags = -1;
是便携式的。unsigned int flags = ~0;
不可移植,因为它依赖于二进制补码表示。unsigned int flags = 0xffffffff;
不可移植,因为它采用32位整数。
如果要以C标准保证的方式设置所有位,请使用第一个。
慕侠2389804
TA贡献1719条经验 获得超6个赞
坦率地说,我认为所有的fff都更具可读性。至于它是反模式的评论,如果你真的关心所有的位都被设置/清除,我会争辩说你可能处于这样一种情况,你无论如何都要关心变量的大小,这会要求像boost这样的东西:: uint16_t等
- 3 回答
- 0 关注
- 426 浏览
添加回答
举报
0/150
提交
取消