使用-1將所有位設(shè)置為true是否安全?我已經(jīng)看到這種模式在C&C ++中使用了很多。unsigned int flags = -1; // all bits are true這是一個很好的便攜式方法嗎?或正在使用0xffffffff或~0更好?
3 回答

喵喵時光機(jī)
TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個贊
unsigned int flags = -1;
是便攜式的。unsigned int flags = ~0;
不可移植,因?yàn)樗蕾囉诙M(jìn)制補(bǔ)碼表示。unsigned int flags = 0xffffffff;
不可移植,因?yàn)樗捎?2位整數(shù)。
如果要以C標(biāo)準(zhǔn)保證的方式設(shè)置所有位,請使用第一個。

慕俠2389804
TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個贊
坦率地說,我認(rèn)為所有的fff都更具可讀性。至于它是反模式的評論,如果你真的關(guān)心所有的位都被設(shè)置/清除,我會爭辯說你可能處于這樣一種情況,你無論如何都要關(guān)心變量的大小,這會要求像boost這樣的東西:: uint16_t等
- 3 回答
- 0 關(guān)注
- 447 瀏覽
添加回答
舉報
0/150
提交
取消