通过其地址访问C中的位字段

不允许使用其地址访问C中的位字段的原因是什么,是因为它可能不是一个非系统字对齐的地址..? 或者因为在一个字节内得到位的地址没有意义……?(因为这种类型的指针运算会很尴尬吗?)

比特没有地址。 这就是为什么你不能通过地址来引用它们的原因。 寻址的粒度是char

我猜测的原因是该语言的设计与其所针对的架构相匹配,而且我知道没有允许对各个位进行寻址的机器。

C中可寻址内存的最小单位是char ,因为这对应于大多数CPU架构中可寻址内存的最小单位。 *谈论一点地址是没有意义的。


*可以想象一个假设的机器允许寻址各个位,但它会非常深奥。

在c中,最小可寻址单元的存储器被认为是字节。 指针指向一个可以是任何data_type的内存位置(指针也是另一个变量)。 以字节为后退的位没有任何地址,而是具有位位置。

所以基本上你不能指向特定的位,你可以指向一个字节或整个字。