我需要以这种方式将一些位打包成一个字节:
struct
{
char bit0: 1;
char bit1: 1;
} a;
if( a.bit1 ) /* etc */
或者:
if( a & 0x2 ) /* etc */
从源代码的清晰度来看,对我来说很明显位域更整洁。但是哪个选项更快?我知道速度差异不会太大,但我可以使用它们中的任何一个,如果一个更快,更好。
另一方面,我读到位域不能保证跨平台以相同的顺序排列位,我希望我的代码是可移植的。
注意:如果您打算回答“个人资料”,我会的,但由于我很懒,如果有人已经有了答案,那就更好了。
代码可能是错误的,如果您愿意,可以纠正我,但请记住这个问题的意义,并请尝试回答。