Ответ 1
Это можно сделать с помощью gcc диагностических прагм.
В компиляторах 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-multichar:
Не следует предупреждать, используется ли многоканальная константа ( "FOOF" ). Обычно они указывают опечатку в код пользователя, поскольку они имеют значения, определенные реализацией, и не должны использоваться в портативный код.
Внутри исходного кода пишите:
#pragma GCC diagnostic ignored "-Wno-multichar"
// code with warnings but wont be displayed now...