Очистка Си/Си++ кода, выявляет проблемы с вариативным макросы
Мы делаем некоторую очистку кода, исправляем сравнения со знаком / без знака, запускаем статический анализ и т. д. На основе кода 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