Как проверить, что используется c99, а не gnu99 - PullRequest
1 голос
/ 28 декабря 2011

Я хочу добавить предупреждающее сообщение во время компиляции, чтобы предупредить пользователя, что он должен использовать gnu99 вместо c99 (я использую анонимную структуру, и, похоже, ее вообще нет в c99).

Я обнаружил, что:

#if __STDC_VERSION__ >= 199901L

но этот тест верен для c99 и gnu99.

Какой предопределенный макрос можно использовать?

1 Ответ

5 голосов
/ 28 декабря 2011

Вы можете проверить сами:

$ gcc -std=c99 -dM -E - < /dev/null > c99.txt
$ gcc -std=gnu99 -dM -E - < /dev/null > gnu99.txt
$ sdiff -s c99.txt gnu99.txt
#define __STRICT_ANSI__ 1                     <
...