charデータ型が32ビットで保存または表現される方法とCで64ビットで表現される方法の違いは何ですか?
質問する
366 次
2 に答える
8
違いはありません。
1文字が1バイトを占めます。
1バイトには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;
}
于 2009-10-06T15:56:39.417 に答える
4
考えられる違いの 1 つは、文字が 32 ビット境界ではなく 64 ビット境界で整列される可能性があることです。
struct {
char a;
char b;
}
32 ビットでは 2 * 4 バイト、64 ビットでは 2 * 8 バイトを占める場合があります。
編集 - 実際にはそうではありません。健全なコンパイラは、バイト境界に文字のみを含む構造体を再パックします。ただし、「long c;」を追加した場合 最終的には何でも起こり得る。そのため、a) sizeof() があり、b) c で手動ポインターを使用する場合は注意が必要です。
于 2009-10-06T16:01:32.320 に答える