× В GNU C На главную Об авторе

Дата и время публикации:

Основой GNU C является использование расширений к ISO C, обеспечивая возможностями, которые отсутствуют в стандарте ISO языка Си, так если указать опцию -pedantic или -Wpedantic, на выходе GCC закидает предупреждающими сообщениями, если встретит что-то в обход стандарта. Поэтому, когда используются такого рода опции или -iso со значениями c90, c99 и им подобных, нужно учитывать, что какое-либо отклонение от стандарта может сопровождаться не только выдачей ни к чему обязывающих сообщений, но и заставят компилятор завершить работу с ошибкой.

В листинге 1 приведен код для тестирования возможности использования GNU C.

Листинг 1

1 #ifndef __GNUC__
2 #error "It's nonsense!The macros __GNUC__ is not predefined."What compiler do you use?"
3 #else
4 #warning "The macros __GNUC__ is always predefined by the GNU C preprocessor!"
5 #endif /*__GNUC__*/

В строке 1 проверяется определен макрос __GNUC__ или нет. Соответственно, если он отсутствует препроцессорная директива #error в строке 2 заставит GCC выдать, что такое событие является нонсенсом, а в строке 3, напротив директива #warning сообщит, что макрос __GNUC__ всегда предопределен в процессоре GNU C.

Ниже, перечисленные статьи по использованию расширений семейства языка С для компилятора GCC основываются на справочной информации из раздела Extensions to the C Language Family и документа GCC Manual.