在以下示例中,我可以用位定义C元素的大小吗?
#include <stdio.h>
typedef enum {
false = 0,
true = ~0
} bool;
int main(void) {
bool x;
printf("%d", sizeof x);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
一般来说,没有.最小可寻址单元是一个字节,而不是一个位.
您可以使用位域执行有趣的操作,例如:
struct {
unsigned a : 31;
unsigned b : 1;
};
Run Code Online (Sandbox Code Playgroud)
该结构可能会有一个sizeof == 4,a将使用31位空间,b并将使用1位空间.