我需要以以下方式将一些比特打包到一个字节中:
struct
{
char bit0: 1;
char bit1: 1;
} a;
if( a.bit1 ) /* etc */
或者:
if( a & 0x2 ) /* etc */
从源代码的清晰度来看,对我来说位域更加整洁。但哪个选项更快?我知道速度差异不会太大甚至没有,但如果可以使用任何一个选项,如果有一个更快,那就更好。另一方面,我已经了解到,位域不能保证在各个平台上以相同的顺序排列位,而我希望我的代码具有可移植性。
注:如果你打算回答“分析”,没问题,但我很懒,如果已经有人有答案了,那就更好了。代码可能有误,如果你想,你可以纠正我,但请记住这个问题的重点,并请尽量回答它。