C での char データ型の格納方法または表現方法の 32 ビットと 64 ビットの違いは何ですか?
-
20-09-2019 - |
質問
C での char データ型の格納方法または表現方法の 32 ビットと 64 ビットの違いは何ですか?
解決
違いはありません。
ワンチャーは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;
}
他のヒント
考えられる違いの 1 つは、文字が 32 ビット境界ではなく 64 ビット境界で整列される可能性があることです。
struct {
char a;
char b;
}
32 ビットでは 2 * 4 バイト、64 ビットでは 2 * 8 バイトを占める可能性があります。
編集 - 実際にはそうではありません。まともなコンパイラであれば、バイト境界上の文字のみを含む構造体を再パックします。ただし、「長いc;」を追加した場合結局、何でも起こり得る。そのため、a) sizeof() があり、b) c で手動ポインター処理を行う際には注意が必要です。
所属していません StackOverflow