3

私がこれを行う場合、C++で:

__int64 var = LLONG_MIN;
__int64 var2 = -var;
cout << "var: "<< var << endl;
cout << "var2: "<< var2 << endl;

私が得る出力は次のとおりです。

var: -9223372036854775808
var2: -9223372036854775808

これをカバーする標準の部分は何ですか? 符号付き整数オーバーフローだと思います。これは g++ (GCC) 4.7.2 を使用してコンパイルされました。

私は減算関数を持っていて、加算関数を書いています add( someobj &obj, long long num ) { subtract( obj, -num ); }。LLONG_MIN がなければうまくいくと思います。

4

2 に答える 2