Потому что разработчики gcc ошибаются в том, что означает ANSI C
, или сохранили опцию в соответствии со старым стандартом "совместимости". ANSI C - это ISO C - это C99, который допускает //
комментариев, но когда многие люди говорят ANSI C
, они означают «первую стандартизацию языка C с помощью ANSI», то есть C89. Опция gcc -ansi
эквивалентна -std=c89
.
Если вы пытаетесь обеспечить соответствие современным стандартам, вы должны использовать -std=c99
вместо -ansi
.