отключить определенные предупреждения в gcc
-
22-08-2019 - |
Вопрос
В компиляторах Microsoft определенные предупреждения можно отключить с помощью #pragma, не отключая другие предупреждения.Это чрезвычайно полезная функция, если компилятор предупреждает о чем-то, что "должно быть сделано".
Есть ли у GCC на данный момент аналогичная функция?Это кажется достаточно очевидной функцией, которую невозможно представить, что у нее еще не было бы этой функции, но более старая информация в Интернете предполагает, что этой функции не существует.
Что можно использовать в GCC?
В частности, мне нравится использовать многосимвольные константы, такие как 'abc'.Они эффективно вычисляются как базовое число 256 - очень удобная функция, но она вызывает предупреждение.Это очень удобно для включения четырехсимвольных строк в операторе case.
Решение
Это можно сделать с помощью gcc диагностические программы.
Другие советы
Из руководства gcc:
Many options have long names starting with -f or with -W---for example,
-fforce-mem, -fstrength-reduce, -Wformat and so on. Most of these have
both positive and negative forms; the negative form of -ffoo would be
-fno-foo. This manual documents only one of these two forms, whichever
one is not the default.
Но если вы спрашиваете, отключено ли предупреждение на уровне исходного кода, я не знаю, существует ли эта функция в gcc.
-Wno-мультичар:
Не предупреждайте, если используется многозначная константа ('FOOF').Обычно они указывают на опечатку в коде пользователя, поскольку они имеют значения, определенные реализацией, и не должны использоваться в переносимом коде.
Запись внутри исходного кода :
#pragma GCC diagnostic ignored "-Wno-multichar"
// code with warnings but wont be displayed now...