2016-04-13 2 views
2

Как я могу преобразовать отчеты компилятора gcc из целых чисел в целые числа без знака? Есть ли опция/arg, которую я могу передать компилятору gcc, чтобы отметить такие преобразования?Как сделать gcc-отчет int для преобразования 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 Пожалуйста, разместите код, который вы пытаетесь скомпилировать, и это предупреждение не поймает его. –

+0

@AlexLop. Это не улавливает его на C++. В C это работает: я поддержал ответ. – Boiethios

3

Вы можете использовать -Wconversion:

-Wconversion Предупреждать для неявных преобразований, которые могут изменить значение. Сюда входит ......; конверсии между подписанными и неподписанными, например unsigned ui = -1.

Или, более конкретно, -Wsign-conversion:

-Wsign-conversion Предупреждать для неявных преобразований, которые могут изменить знак целочисленного значения, как и присваивание целочисленного выражения в беззнаковом целочисленном переменный. Явное заклинание отключает предупреждение . В C эта опция включена также -Wconversion.

Ссылка: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options

Смежные вопросы