Подтвердить что ты не робот

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

Я использую 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

Почему?

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

// комментарии на самом деле являются признаками С++ в происхождении, поэтому -ansi отключает их.