1

これがテストコードです。

char ch = 0xff;
int i = ch;
printf("%d\n", i);

i386 gcc-4.4.5 では、出力は -1です。しかし、powerpc-e300c3-linux-gnu-gcc-4.1.2(MPC8315 クロスコンパイラ) では、出力は 255です。

なにが問題ですか?なぜ gcc-4.1.2 の出力は 255 なのですか?

ご回答有難うございます...

4

1 に答える 1

9

char署名されているか署名 されていないかは実装定義です。

どうやら x86 コンパイラでは署名されており、PowerPC コンパイラでは署名されていないようです。

移植性のために、unsigned charまたはsigned char署名を気にする場所ならどこでも使用してください。

于 2010-12-10T06:59:40.963 に答える