よろしくお願いいたします。
godbolt.orgというサイトを知り、
いろいろなコンパイラがあるのだなと、興味深く操作していたところ、
コンパイラによって、結果が異なる現象を確認しました。→ 結果A/結果B
このような動作になるのは正しいのでしょうか?
何が起きているのか、興味があります。
同様の興味を抱いていただきありがとうございます。
C
1#include <stdint.h> 2uint64_t u32UL(void) 3{ 4 uint32_t u32 = 0x80000000u; 5 return ((u32)); 6 //return ((uint64_t)(u32)); 7 //return ((uint64_t)(uint32_t)(u32)); 8 9 // 結果A: +2147483648 = 0x80000000 (期待する戻り値) 10 // 結果B: -2147483648 = 0xFFFFFFFF80000000 11}
回答3件
あなたの回答
tips
プレビュー