Как передать -std = c99 в g ++? - PullRequest
       19

Как передать -std = c99 в g ++?

1 голос
/ 19 сентября 2011

Мой файл cpp содержит заголовок C, в конце которого находится перечислитель с запятой.В результате g ++ выдает предупреждение:

предупреждение: запятая в конце списка перечислителя

Как мне сказать g ++ использовать -std = c99 для этого файла cpp?То есть, как я могу избежать этого предупреждения?

Я уже пробовал: -std = c99, но это привело к: "cc1plus: warning: опция командной строки" -std = c99 "действительна для C / ObjC, ноне для C ++ "

Примечание: включение заголовков C окружено внешней командой" C ".

Ответы [ 2 ]

3 голосов
/ 19 сентября 2011

Ты не. g++ компилирует C ++, а не C. Заголовок C, включенный в исходный файл C ++, все равно должен следовать правилам C ++, даже с extern "C". Например, заголовок не может использовать class в качестве идентификатора.

2 голосов
/ 19 сентября 2011

#include работает, просто вставляя текст включенного файла в позицию, где находится строка #include.Результатом предварительной обработки является один текстовый файл, который затем отправляется компилятору, и вы не можете изменить язык в середине файла.

Поскольку ваш файл cpp компилируется как код C ++, заголовки егов том числе будет.extern "C" не меняет язык;он просто сообщает компилятору C ++, что функции, объявленные внутри, используют соглашение о вызовах C.

...