Spec-Zone.ru › GCC 13

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

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

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

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

  • Операторы и объявления в выражениях
  • Локально объявленные метки
  • Метки как значения
  • Вложенные функции
  • Нелокальные переходы
  • Конструирование вызовов функций
  • Ссылка на тип с помощью typeof
  • Условные операторы с пропущенными операндами
  • 128-битные целые числа
  • Двухсловные целые числа
  • Комплексные числа
  • Дополнительные типы чисел с плавающей запятой
  • Половинная точность чисел с плавающей запятой
  • Десятичные типы чисел с плавающей запятой
  • Шестнадцатеричные числа с плавающей запятой
  • Типы чисел с фиксированной запятой
  • Именованные адресные пространства
  • Массивы нулевой длины
  • Структуры без членов
  • Массивы переменной длины
  • Макросы с переменным числом аргументов.
  • Несколько более свободные правила для экранированных символов новой строки
  • Не-lvalue массивы могут иметь индексы
  • Арифметика над указателями на void и указателями на функции
  • Указатели-аргументы в вариативных функциях
  • Указатели на массивы с квалификаторами работают как ожидается
  • Непостоянные инициализаторы
  • Составные литералы
  • Определённые инициализаторы
  • Диапазоны case
  • Приведение к типу объединения
  • Смешанные объявления, метки и код
  • Объявление атрибутов функций
  • Указание атрибутов переменных
  • Указание атрибутов типов
  • Атрибуты меток
  • Атрибуты перечислителей
  • Атрибуты операторов
  • Синтаксис атрибутов
  • Прототипы и определения функций старого стиля
  • Комментарии в стиле C++
  • Знаки доллара в именах идентификаторов
  • Символ ESC в константах
  • Определение выравнивания функций, типов или переменных
  • Встроенная функция так же быстра, как макрос
  • Когда происходит доступ к 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-13.3.0/gcc/C-Extensions.html

Spec-Zone.ru

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