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

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

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

Делает gcc скомпилируйте режим, который я использую, запрещают // комментарии?

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

Почему?

33
задан too honest for this site 9 December 2017 в 17:36
поделиться

2 ответа

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

73
ответ дан 27 November 2019 в 17:37
поделиться

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

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

(Особое внимание я уделяю, потому что в некоторых сообщениях утверждается, что // не разрешены в стандарте C, тогда как это верно только для стандартов до 99).

24
ответ дан 27 November 2019 в 17:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: