Spec-Zone.ru › GCC 12 CPP

Предпроцессор C

Оглавление

  • 1 Обзор
    • 1.1 Наборы символов
    • 1.2 Первичная обработка
    • 1.3 Токенизация
    • 1.4 Язык препроцессора
  • 2 Файлы заголовков
    • 2.1 Синтаксис включения
    • 2.2 Механизм включения
    • 2.3 Путь поиска
    • 2.4 Файлы заголовков, включаемые только один раз
    • 2.5 Альтернативы оберткам #ifndef
    • 2.6 Вычисляемые включения
    • 2.7 Обёртки заголовков
    • 2.8 Системные заголовки
  • 3 Макросы
    • 3.1 Макросы-объекты
    • 3.2 Макросы-функции
    • 3.3 Аргументы макросов
    • 3.4 Строковое представление
    • 3.5 Конкатенация
    • 3.6 Макросы с переменным числом аргументов
    • 3.7 Встроенные макросы
      • 3.7.1 Стандартные встроенные макросы
      • 3.7.2 Общие встроенные макросы
      • 3.7.3 Макросы, специфичные для системы
      • 3.7.4 Имена операторов C++
    • 3.8 Удаление и переопределение макросов
    • 3.9 Директивы внутри аргументов макроса
    • 3.10 Потенциальные проблемы с макросами
      • 3.10.1 Неправильное вложение
      • 3.10.2 Проблемы с приоритетом операторов
      • 3.10.3 Проглатывание точки с запятой
      • 3.10.4 Удваивание побочных эффектов
      • 3.10.5 Самоссылочные макросы
      • 3.10.6 Предварительный просмотр аргументов
      • 3.10.7 Переводы строки в аргументах
  • 4 Условные операторы
    • 4.1 Применение условных операторов
    • 4.2 Синтаксис условных операторов
      • 4.2.1 Ifdef
      • 4.2.2 If
      • 4.2.3 Defined
      • 4.2.4 Else
      • 4.2.5 Elif
      • 4.2.6 __has_attribute
      • 4.2.7 __has_cpp_attribute
      • 4.2.8 __has_c_attribute
      • 4.2.9 __has_builtin
      • 4.2.10 __has_include
    • 4.3 Удаленный код
  • 5 Диагностика
  • 6 Управление строками
  • 7 Предикаты
  • 8 Другие директивы
  • 9 Выходные данные препроцессора
  • 10 Традиционный режим
    • 10.1 Традитический лексический анализ
    • 10.2 Традиционные макросы
    • 10.3 Разное (традиционный режим)
    • 10.4 Предупреждения (традиционный режим)
  • 11 Детали реализации
    • 11.1 Определяемое реализацией поведение
    • 11.2 Пределы реализации
    • 11.3 Устаревшие возможности
      • 11.3.1 Утверждения
  • 12 Вызов
  • 13 Переменные среды
  • GNU Лицензия на свободную документацию
    • ДОПОЛНЕНИЕ: Как использовать эту лицензию для вашей документации
  • Индекс директив
  • Индекс опций
  • Индекс концепций

Далее: Обзор, Вверх: (dir) [Оглавление][Индекс]

END_OF_DOCUMENT_MARKER

Препроцессор C реализует язык макросов, используемый для преобразования программ на C, C++ и Objective-C перед их компиляцией. Он также может быть полезен сам по себе.

• Обзор:
• Файлы заголовков:
• Макросы:
• Условные операторы:
• Диагностика:
• Управление строками:
• Директивы:
• Другие директивы:
• Вывод препроцессора:
• Традиционный режим:
• Детали реализации:
• Вызов:
• Переменные среды:
• Лицензия GNU на свободную документацию:
• Индекс директив:
• Индекс опций:
• Индекс понятий:
— Подробный список узлов — Обзор
• Наборы символов:
• Первичная обработка:
• Токенизация:
• Язык препроцессинга:
Файлы заголовков
• Синтаксис включения:
• Операция включения:
• Путь поиска:
• Файлы заголовков, включаемые только один раз:
• Альтернативы обертке #ifndef:
• Вычисляемые включения:
• Оберточные файлы заголовков:
• Системные файлы заголовков:
Макросы
• Макросы-объекты:
• Макросы-функции:
• Аргументы макроса:
• Строка:
• Конкатенация:
• Макросы с переменным числом аргументов:
• Предопределенные макросы:
• Удаление и переопределение макросов:
• Директивы внутри аргументов макроса:
• Недостатки макросов:
Предопределенные макросы
• Стандартные предопределенные макросы:
• Общие предопределенные макросы:
• Системно-специфические предопределенные макросы:
• Имена операторов C++:
Недостатки макросов
• Неправильное вложение:
• Проблемы с приоритетом операторов:
• Проглатывание точки с запятой:
• Дублирование побочных эффектов:
• Самоссылочные макросы:
• Предварительный просмотр аргументов:
• Новые строки в аргументах:
Условные операторы
• Использование условных операторов:
• Синтаксис условных операторов:
• Удалённый код:
Синтаксис условных операторов
• Если определено:
• Если:
• Определено:
• Если нет:
• Если-иначе:
Детали реализации
• Определяемое реализацией поведение:
• Пределы реализации:
• Устаревшие возможности:
Устаревшие возможности
• Устаревшие возможности:

Авторское право © 1987-2022 Фонд свободного программного обеспечения, Inc.

Разрешается копировать, распространять и/или изменять настоящий документ на условиях Лицензии GNU на свободную документацию, версия 1.3 или любой более поздней версии, опубликованной Фондом свободного программного обеспечения. Копия лицензии включена в раздел, озаглавленный «Лицензия GNU на свободную документацию».

В данном руководстве нет неизменных разделов. Текст на лицевой обложке — (а) (см. ниже), а на задней — (б) (см. ниже).

(а) Текст Фонда свободного программного обеспечения на лицевой обложке:

Руководство GNU

(б) Текст Фонда свободного программного обеспечения на задней обложке:

Вы имеете право копировать и изменять данное руководство GNU, как и программное обеспечение GNU. Копии, опубликованные Фондом свободного программного обеспечения, собирают средства для развития GNU.

Далее: Обзор, Вернуться к: (dir) [Оглавление][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.1.0/cpp/index.html

Spec-Zone.ru

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