6

私の小さなプログラム:

#include <stdio.h>

int main() {
    signed char c = -128;
    c = -c;
    printf("%d", c);
    return 0;
}

印刷:

-128

マイナス (-) 演算子は CPU 間で移植可能ですか?

4

3 に答える 3

9

単項マイナスのオペランドは、最初に標準プロミションを受けるためint、値を表すことができるタイプです-128。操作の結果は値128で、これも型intです。intからへの変換はsigned char、符号付き型の縮小であり、実装によって定義されます。

(実装は単純なラップアラウンドを行うようです: 125, 126, 127, -128, -127, ...)

于 2013-07-04T12:10:00.803 に答える