Spec-Zone.ru › GCC 14

6 Расширения семейства языков C

GNU C предоставляет несколько языковых функций, отсутствующих в стандартном C ISO. (Опция -pedantic сообщает GCC о том, что при использовании этих функций будет выдаваться предупреждение.) Чтобы проверить наличие этих функций в условной компиляции, проверьте предварительно определённый макрос __GNUC__, который всегда определён в GCC.

Эти расширения доступны в C и Objective-C. Большинство из них также доступны в C++. См. Расширения языка C++ для расширений, которые применяются только к C++.

Некоторые функции, которые есть в ISO C99, но не в C90 или C++, также, как расширения, принимаются GCC в режиме C90 и в C++.

  • Операторные выражения и объявления
  • Локально объявленные метки
  • Метки как значения
  • Вложенные функции
  • Нелокальные переходы
  • Создание вызовов функций
  • Ссылка на тип с помощью typeof
  • Условные операторы с пропущенными операндами
  • 128-битные целые числа
  • Целые числа двойной длины
  • Комплексные числа
  • Дополнительные типы чисел с плавающей точкой
  • Числа с плавающей точкой полуточной точности
  • Десятичные типы чисел с плавающей точкой
  • Шестнадцатеричные числа с плавающей точкой
  • Типы чисел с фиксированной точкой
  • Именованные адресные пространства
  • Массивы нулевой длины
  • Структуры без элементов
  • Массивы переменной длины
  • Макросы с переменным числом аргументов
  • Несколько ослабленные правила для экранированных символов новой строки
  • Массивы, не являющиеся ссылками на переменные, могут иметь индексы
  • Арифметика над указателями на void и указателями на функции
  • Указатели-аргументы в функциях с переменным числом аргументов
  • Указатели на массивы с квалификаторами работают как ожидается
  • Инициализаторы, не являющиеся константами
  • Составные литералы
  • Инициализаторы с указанием места
  • Диапазоны case
  • Приведение к типу объединения
  • Смешанные объявления, метки и код
  • Объявление атрибутов функций
  • Указание атрибутов переменных
  • Указание атрибутов типов
  • Атрибуты меток
  • Атрибуты перечислителей
  • Атрибуты операторов
  • Синтаксис атрибутов
  • Прототипы и определения функций старого стиля
  • Комментарии в стиле C++
  • Знаки доллара в именах идентификаторов
  • Символ ESC в константах
  • Определение выравнивания функций, типов или переменных
  • Встроенная функция так же быстра, как макрос
  • Функции Const и Volatile
  • Когда осуществляется доступ к объекту Volatile?
  • Как использовать ассемблерный язык в коде C
  • Альтернативные ключевые слова
  • Неполные enum типы
  • Имена функций как строки
  • Получение адреса возврата или фрейма функции
  • Внутренние интерфейсы очистки стека
  • Использование векторных инструкций через встроенные функции
  • Поддержка offsetof
  • Функции встроенные функции __sync для атомного доступа к памяти
  • Встроенные функции для операций с атомарным доступом к памяти
  • Встроенные функции для выполнения арифметических операций с проверкой переполнения
  • Расширения модели памяти x86 для транзакционной памяти
  • Проверка размера объекта
  • Другие встроенные функции, предоставляемые GCC
  • Встроенные функции, специфичные для определённых целевых машин
  • Проверки форматов, специфичные для определённых целевых машин
  • Предикаты, принимаемые GCC
  • Неименованные поля структуры и объединения
  • Потоко-локальное хранилище
  • Двоичные константы с префиксом ‘0b’

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/C-Extensions.html

Spec-Zone.ru

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