Spec-Zone.ru › GCC 15

6.12.21 Альтернативные ключевые слова

Параметр -ansi и различные параметры -std отключают некоторые ключевые слова, являющиеся расширениями GNU C. В частности, ключевые слова asm, typeof и inline недоступны в программах, скомпилированных с параметром -ansi или параметром -std=, задающим стандарт ISO, в котором это ключевое слово не определено. Это создает проблемы, если вы хотите использовать эти расширения в заголовочном файле, который может включаться в программы, компилируемые с такими параметрами.

Решить эти проблемы можно, добавив ‘__’ в начало и конец каждого проблемного ключевого слова. Например, используйте __asm__ вместо asm и __inline__ вместо inline.

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

#ifndef __GNUC__
#define __asm__ asm
#endif

Параметр -pedantic и другие параметры вызывают предупреждения о многих расширениях GNU C. Подавить такие предупреждения можно с помощью ключевого слова __extension__. В частности:

  • Запись __extension__ перед выражением предотвращает появление предупреждений о расширениях внутри этого выражения.
  • В C запись:
    [[__extension__ …]]

    подавляет предупреждения об использовании атрибутов ‘[[]]’ в версиях C, предшествующих C23.

__extension__ не оказывает никакого другого эффекта.

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/Alternate-Keywords.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API