- Wextra, насколько полезный это действительно?

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

19
задан helpermethod 22 May 2010 в 14:17
поделиться

2 ответа

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

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

Я нахожу это действительно полезным.

27
ответ дан 30 November 2019 в 03:33
поделиться

Я обычно добавляю -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. Это может быть медленным. Но я был бы удивлен, если бы вы не нашли существующих ошибок.

8
ответ дан 30 November 2019 в 03:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: