-Всем насколько это полезно на самом деле? - PullRequest
18 голосов
/ 22 мая 2010

Сейчас я читаю руководство по gcc, особенно часть о флагах предупреждения / ошибки. После прочтения части о флаге -Wextra, я думаю, полезно ли это вообще. Кажется, что он жалуется на вещи, которые кажутся довольно субъективными или делом вкуса. Я не настолько опытен с gcc, я использую его время от времени только для небольших проектов в университете, так что для всех опытных C / C ++ (или для любого языка, на котором вы используете gcc), что вы имеете с -Wextra? *

Ответы [ 3 ]

25 голосов
/ 22 мая 2010

-Wextra, среди прочего подразумевает -Wtype-limits:

Предупредить, если сравнение всегда верно иливсегда false из-за ограниченного диапазона типа данных, но не предупреждать о константных выражениях.Например, предупредите, если беззнаковая переменная сравнивается с нулем с помощью «<» или «> =».Это предупреждение также включено -Wextra.

Я считаю это действительно полезным .

7 голосов
/ 22 мая 2010

Я обычно добавляю -Wno-sign-compare и -Wno-unused-parameter для удаления шума.

Подразумеваемый -Wuninitialized (с опцией -O2) был очень полезным для меня, но первоначальное добавление его в базу кода может быть немного утомительным. Один из способов справиться с этим - добавить два макроса (которые выглядят немного странно: знак равенства является преднамеренным):

#define ELIMINATE_GCC_WARNING = 0 // used to remove nuisance warnings
#define UNCHECKED_GCC_WARNING = 0 // not yet verified

Тогда вы можете быстро устранить предупреждения gcc и получить чистую компиляцию, используя, например, ::

int foo UNCHECKED_GCC_WARNING;

Затем в качестве необязательного шага вернитесь и проверьте эти дополнения и замените их один за другим на ELIMINATE_GCC_WARNING. Это может быть медленным. Но я был бы удивлен, если бы вы не нашли существующих ошибок.

2 голосов
/ 01 мая 2013

Пожалуйста, смотрите http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html.

Поэтому это полезно не только для сравнения «всегда верно» (-Wsign-compare), но и для выявления других проблем компиляции. Я нахожу это полезным часто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...