Spec-Zone.ru › GCC 11

Следующая: Расширения языка C++, Предыдущая: Определяемое реализацией поведение C++, Вверх: Введение [Оглавление][Индекс]

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 в константах
  • Определение выравнивания функций, типов или переменных
  • Встроенная функция так же быстра, как макрос
  • Когда происходит доступ к изменчивому объекту?
  • Как использовать встроенный язык ассемблера в коде C
  • Альтернативные ключевые слова
  • Неполные enum типы
  • Имена функций как строки
  • Получение адреса возврата или кадра функции
  • Использование векторных инструкций через встроенные функции
  • Поддержка offsetof
  • Устаревшие __sync встроенные функции для атомного доступа к памяти
  • Встроенные функции для модели памяти, учитывающие атомарные операции
  • Встроенные функции для выполнения арифметики с проверкой переполнения
  • x86-специфичные расширения модели памяти для транзакционной памяти
  • Встроенные функции для проверки размера объекта
  • Другие встроенные функции, предоставляемые GCC
  • Встроенные функции, специфичные для определенных целевых машин
  • Проверки формата, специфичные для определенных целевых машин
  • Прагмы, принимаемые GCC
  • Неименованные поля структур и объединений
  • Локальное хранение потоков
  • Двоичные константы с префиксом ‘0b’

Следующая: Расширения языка C++, Предыдущая: Определяемое реализацией поведение C++, Вверх: Введение [Оглавление][Индекс]

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

Spec-Zone.ru

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