Очистка кода C/C++ выявляет проблемы с переменными макросами
Мы выполняем очистку кода, фиксируем сопоставления с подписью/без знака, запускаем статический анализ и т.д. На базе кода C, C++ и Java.
Одно из предупреждений, которые мы получаем
warning: ISO C does not permit named variadic macros
И его сопроводительное предупреждение
warning: ISO C99 requires rest arguments to be used
Теперь, в коде C, я использовал стандартный переменный макрос C99 для исправления проблемы, но в коде C++, какой правильный ответ? Использование того же стиля C99 приводит к другому предупреждению
warning: anonymous variadic macros were introduced in C99
За что я не вижу никаких ответов.
Мы используем GCC (G++) 4.4.3 в Linux.
Я надеюсь, что есть какой-то флаг или другой метод, который может исправить или отключить его для конкретного раздела кода, - но его для ведения журнала, который используется почти в каждом файле...
Ответы
Ответ 1
Используйте параметр gcc -Wno-variadic-macros
чтобы отключить это конкретное предупреждение.
Изменение: (из комментариев)
Чтобы отключить предупреждение для раздела кода, но оставьте его вообще, используйте описанную здесь #pragma GCC diagnostic
.
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wno-variadic-macros"
// Your code and/or include files
// (No variadic warnings here)
#pragma GCC diagnostic pop