char数据类型在32位中的存储或表示方式与C中的64位之间有什么区别?
答案 0 :(得分:8)
没有区别 一个字符占用一个字节 一个字节有CHAR_BIT位。
#include <limits.h>
#include <stdio.h>
int main(void) {
printf("a char occupies 1 byte of %d bits.\n", CHAR_BIT);
return 0;
}
答案 1 :(得分:4)
一个可能的区别是字符可能在64位而不是32位边界上对齐。
struct {
char a;
char b;
}
可能在32位上占用2 * 4字节,在64位上占用2 * 8字节。
编辑 - 实际上它不会。任何理智的编译器都会重新打包一个只有字节边界字符的结构。但是,如果你添加了'长c;'最终什么都可能发生。这就是为什么a)你有sizeof()和b)你应该小心在c中做手动指针的东西。