Spec-Zone.ru › GCC 10

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

Spec-Zone.ru

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