2016-04-13 2 views
2

gccコンパイラが整数から符号なし整数に変換する方法を教えてください。 gccコンパイラにそのような変換をフラッグアウトするために渡すことができるオプション/ argはありますか?gccレポート整数をuint変換にする方法

+0

コンバージョンを意味するのですか? 'unsigned int u = 0;'もまた整数 - 符号なしですか? –

答えて

6

フラグ:-Wconversionを使用して、値を変更する可能性のある符号付き整数と符号なし整数間の変換について警告します。

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

+0

@AlexLop。私はg ++を使っていました...しかしC言語では動作しますが、C++では動作しないのは変です... – Boiethios

+0

@Morovailleコンパイルしようとしているコードを投稿してください。 @AlexLop。 –

+0

それはC + +でそれをキャッチしません。 C言語では動作します:私は答えをアップビートしました。 – Boiethios

3

あなたは-Wconversionを使用することができます。

-Wconversionが値を変更することができる暗黙的な変換のために警告します。 これには......が含まれます。 のような符号付きと符号なしの間の変換は、符号なしui = -1です。

またはより具体的には、-Wsign-conversion

-Wsign-conversionは、符号なし整数変数に符号付き整数表現 を割り当てるように、整数値の符号を変更することが暗黙的な変換のための警告します。明示的なキャストは、 警告を消音します。 Cでは、このオプションは-Wconversionでも有効です。

参考:https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options

関連する問題