C中的逐位结构编程

Abh*_*ury 4 c bit-fields

这是如何运作的?

struct {
    int a : 21;
    int b : 11;
};
Run Code Online (Sandbox Code Playgroud)

a和b是两个单独的int变量还是使用不同位域的相同变量?

tem*_*def 6

这是两个单独的变量struct,一个命名a,一个命名b.但是,它们的大小a应该是21位,b应该有11位.访问一个变量并对其进行操作不会影响另一个变量.

希望这可以帮助!

  • 通常它们将被打包到相同的32位存储单元中 (2认同)