Пока вы понимаете, что примеры кода, написанные другими, могут привести к предупреждениям с -Wall
, тогда да, это хороший флаг для использования, поскольку он дает вам привычку писать код, свободный от любого потенциального серогообласти, которые компилятор может определить.
Выпускать все предупреждения, требуемые строгими стандартами ISO C и ISO C ++;отклонить все программы, которые используют запрещенные расширения, и некоторые другие программы, которые не соответствуют ISO C и ISO C ++.Для ISO C следует версии стандарта ISO C, указанной любой используемой опцией -std.
Действительные программы ISO C и ISO C ++ должны компилироваться должным образом с этой опцией или без нее (хотя в редких случаях потребуется -ansiили параметр -std, указывающий требуемую версию ISO C).Однако без этой опции поддерживаются также некоторые расширения GNU и традиционные функции C и C ++.С этой опцией они отклоняются.
-pedantic не вызывает предупреждающих сообщений для использования альтернативных ключевых слов, имена которых начинаются и заканчиваются __
.Педантические предупреждения также отключены в выражении, которое следует за «__
extension __
».Однако только системные заголовочные файлы должны использовать эти пути эвакуации;прикладные программы должны избегать их.
Некоторые пользователи пытаются использовать -pedantic для проверки программ на соответствие ISO C.Вскоре они обнаруживают, что он делает не совсем то, что им нужно: он находит некоторые практики, отличные от ISO, но не все - только те, для которых ISO C требует диагностики, и некоторые другие, для которых диагностика была добавлена.
Функция сообщения о любом несоответствии ISO C может быть полезна в некоторых случаях, но потребует значительной дополнительной работы и будет сильно отличаться от -pedantic.Мы не планируем поддерживать такую функцию в ближайшем будущем.