1. ホーム
  2. c++

[解決済み] 警告:暗黙の定数変換でのオーバーフロー

2022-01-28 16:52:35

質問

次のプログラムでは、5行目で オーバーフロー警告 しかし、驚くべきことに、4行目はGCCで何の警告も出ません。 http://www.ideone.com/U0BXn

int main()
{
    int i = 256;
    char c1 = i;    //line 4
    char c2 = 256;  //line 5
    return 0;
}

この2つの行で オーバーフロー の警告を表示します。それとも何か見落としがあるのでしょうか?


今回の実験を行うきっかけとなったトピックはこれです。 typedef型チェック?

そこで私は次のように言いました(実行すると期待したように表示されなかったので、私の回答から削除しました)。

//However, you'll get warning for this case:

typedef int  T1;
typedef char T2;

T1 x = 256;     
T2 y = x; //possible overflow warning! (but it doesn't give warning :()

解決方法は?

-Wall には多くのオプションが含まれていません。 -Wconversion はそのうちの一つで、気になる動作について警告しています。

参照 http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html