Программирование ARM gcc: альтернативные ключевые слова Fri, December 06 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


gcc: альтернативные ключевые слова Печать
Добавил(а) microsin   

Опция -ansi и различные опции -std запрещают определенные ключевые слова. Это создает проблемы, когда нужно использовать расширения GNU C или обычный заголовочный файл, который подключается всеми программами, включая программы ISO C. Ключевые слова asm, typeof [2] и inline недоступны в программах, компилируемых с -ansi или -std (хотя inline может использоваться в программе, компилируемой с указанием -std=c99 или более позднего стандарта C). Ключевое слово restrict стандарта ISO C99 доступно только при использовании -std=gnu99 (что в конечном счете будет использоваться по умолчанию) или -std=c99 (или с эквивалентом -std=iso9899:1999), или опции для более поздней версии стандарта.

Существует способ решить эти проблемы путем добавления двух нижних подчеркиваний '__' в начало и конец проблематичных ключевых слов. Например использовать __asm__ вместо asm, и __inline__ вместо inline.

Другие компиляторы C не примут эти альтернативные ключевые слова. Если вы захотите скомпилировать код с альтернативными ключевыми словами другим компилятором, то можете определить альтернативные ключевые слова в виде макросов, чтобы они заменялись на ключевые слова, которые подходят для используемого компилятора. Это может выглядеть так:

#ifndef __GNUC__
  #define __asm__ asm
#endif

Опция -pedantic и некоторые другие опции генерируют предупреждения на многие расширения GNU C. Подавить такие предупреждения можно, если разместить __extension__ перед соответствующим выражением. Слово __extension__ не дает никакого эффекта, кроме этого.

[Ссылки]

1. Alternate Keywords site:gcc.gnu.org.
2. gcc: использование typeof.

 

Добавить комментарий


Защитный код
Обновить

Top of Page