为了账号安全,请及时绑定邮箱和手机立即绑定

使用-1将所有位设置为true是否安全?

使用-1将所有位设置为true是否安全?

C++ C
尚方宝剑之说 2019-07-29 16:50:03
使用-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标准保证的方式设置所有位,请使用第一个。


查看完整回答
反对 回复 2019-07-29
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

坦率地说,我认为所有的fff都更具可读性。至于它是反模式的评论,如果你真的关心所有的位都被设置/清除,我会争辩说你可能处于这样一种情况,你无论如何都要关心变量的大小,这会要求像boost这样的东西:: uint16_t等


查看完整回答
反对 回复 2019-07-29
  • 3 回答
  • 0 关注
  • 410 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信