Отключить специальные предупреждения в gcc

В компиляторах microsoft определенные предупреждения можно отключить с помощью #pragma, не отключая другие предупреждения. Это чрезвычайно полезная функция, если компилятор предупреждает о чем-то, что "должно быть сделано".

Есть ли у GCC в этой точке аналогичная функция? Похоже, что достаточно очевидная функция, что его невозможно представить, что у нее не будет этой функции, но более старая информация в Интернете предполагает, что эта функция не существует.

Что можно использовать в GCC?

В частности, мне нравится использовать многосимвольные константы, такие как "abc". Они эффективно оцениваются как базовое 256-число - очень удобная функция, но она вызывает предупреждение. Это очень удобно для включения четырех символьных строк в оператор case.

Ответ 2

Из руководства 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.

Ответ 3

-Wno-multichar:

Не следует предупреждать, используется ли многоканальная константа ( "FOOF" ). Обычно они указывают опечатку в код пользователя, поскольку они имеют значения, определенные реализацией, и не должны использоваться в портативный код.

Дополнительная информация.

Ответ 4

Внутри исходного кода пишите:

#pragma GCC diagnostic ignored "-Wno-multichar"

// code with  warnings but wont be displayed now...