C での char データ型の格納方法または表現方法の 32 ビットと 64 ビットの違いは何ですか?

StackOverflow https://stackoverflow.com/questions/1526510

  •  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 で手動ポインター処理を行う際には注意が必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top