Почему я не могу использовать комментарии в стиле // в своем C-коде? - PullRequest
32 голосов
/ 08 февраля 2010

Я использую gcc (Ubuntu 4.4.1-4ubuntu9), чтобы скомпилировать программу, которую я пишу, но, кажется, ее рвет, когда он видит // комментарий в моем коде, говоря:

interface.c :##: error: expected expression before â/â token<

Запрещается ли в gcc режиме компиляции использовать // комментарии?

$ gcc -g -ansi -pedantic interface.c structs.h -c -I. -I/home/me/project/h

Почему?

Ответы [ 2 ]

69 голосов
/ 08 февраля 2010

// комментарии не допускаются в старых (до 99) версиях C, используйте /**/ (или удалите -ansi, который является синонимом стандарта C89)

23 голосов
/ 08 февраля 2010

См. комментарии C ++ в документации компилятора GNU.

В GNU C вы можете использовать комментарии стиля C ++, которые начинаются с // и продолжаются до концалиния.Многие другие реализации C допускают такие комментарии, и они включены в стандарт C 1999 года .Однако комментарии в стиле C ++ не распознаются, если указать параметр -std, указывающий версию ISO C до C99 или -ansi (эквивалент -std=c89).

(Акцент сделан на меня, потому что некоторые посты утверждают, что // недопустимы в стандарте C, тогда как это верно только для стандартов до 99).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...