Существует ли прагма gcc / Xcode для подавления предупреждений? - PullRequest
3 голосов
/ 04 октября 2009

Есть ли #pragma, чтобы gcc / Xcode подавлял определенные предупреждения, аналогично аннотации @SuppressWarning в Java?

Я, как правило, компилирую с -Wall, но в некоторых ситуациях я хотел бы просто проигнорировать конкретное предупреждение (например, при написании некоторого быстрого / грязного кода просто для того, чтобы помочь отладить что-либо).

Я не ищу ответы "исправить код".

Ответы [ 2 ]

3 голосов
/ 04 октября 2009

Вот жизнеспособное решение . Используйте #pragma GCC system_header, чтобы позволить GCC обрабатывать ваш код совершенно особым образом, таким образом подавляя любые не фатальные #warning.

Помните, вы просто дурачите свой препроцессор, а не настоящий компилятор. Подавление предупреждений может быть вредным в большинстве случаев.

2 голосов
/ 16 сентября 2014

В gcc4.6 и более поздних версиях вы можете использовать прагмы для подавления определенных предупреждений и делать это подавление только для определенного блока кода, т.е.:

#pragma GCC diagnostic 
push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 
// Code that causes warning goes here
#pragma GCC diagnostic pop

Push / Pop используются для сохранения параметров диагностики, которые были до обработки вашего кода.

Это был бы гораздо лучший подход, чем использование "#pragma GCC system_header" для подавления всех предупреждений. (Конечно, в старшей версии gcc вы можете «застрять» с подходом #pragma GCC system_header!)

Вот хорошая ссылка на подавление предупреждений gcc: http://www.dbp -consulting.com / учебники / SuppressingGCCWarnings.html

На этой странице также описано, как использовать -fdiagnostics-show-option, чтобы узнать, какая опция управляет конкретным предупреждением.

Конечно, как уже упоминали другие, как правило, гораздо предпочтительнее устранить причину всех предупреждений, чем их подавлять! Однако иногда это невозможно.

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