Spec-Zone.ru › GCC 5 CPP

1 Обзор

Предпроцессор C, часто известный как cpp, является макропроцессором, который автоматически используется компилятором C для преобразования вашей программы перед компиляцией. Он называется макропроцессором, потому что позволяет определять макросы, которые являются краткими сокращениями для более длинных конструкций.

Предпроцессор C предназначен для использования только с исходным кодом C, C++ и Objective-C. В прошлом он использовался как общий текстовый процессор. Он будет «задыхаться» при вводе, не соответствующем лексическим правилам C. Например, апострофы будут интерпретироваться как начало символьных констант и вызовут ошибки. Также вы не можете полагаться на него для сохранения характеристик ввода, которые не являются значимыми для языков семейства C. Если Makefile предварительно обрабатывается, все табуляции будут удалены, и Makefile не будет работать.

Однако вы часто можете использовать cpp для вещей, которые не являются C. Другие языки программирования семейства Algol часто безопасны (Pascal, Ada и т. д.). Также возможно использование ассемблера, но с осторожностью. Режим -traditional-cpp сохраняет больше пробелов и в остальном более допускает. Многие проблемы можно избежать, написав комментарии в стиле C или C++ вместо комментариев родного языка и сохраняя макросы простыми.

Всякий раз, когда это возможно, следует использовать предпроцессор, ориентированный на язык, на котором вы пишете. Современные версии ассемблера GNU имеют возможности макросов. Большинство языков высокого уровня имеют собственный механизм условной компиляции и включения. Если все остальное не сработает, попробуйте настоящий общий текстовый процессор, такой как GNU M4.

Предпроцессоры C различаются по некоторым деталям. В этом руководстве рассматривается предпроцессор GNU C, который предоставляет небольшой набор функций стандарта ISO C. В стандартном режиме предпроцессор GNU C не выполняет некоторые действия, требуемые стандартом. Это функции, которые редко, если вообще, используются и могут привести к неожиданным изменениям в значении программы, которая их не ожидает. Чтобы получить строгий стандарт ISO C, необходимо использовать параметры -std=c90, -std=c99 или -std=c11 в зависимости от желаемой версии стандарта. Чтобы получить все обязательные диагностические сообщения, также необходимо использовать -pedantic. См. Вызов.

В этом руководстве описывается поведение предпроцессора ISO. Для минимизации необоснованных различий, где поведение предпроцессора ISO не противоречит традиционной семантике, традиционный предпроцессор должен вести себя одинаково. Различные существующие различия подробно описаны в разделе Режим традиционной обработки.

Для ясности, если не указано иное, ссылки на «CPP» в этом руководстве относятся к GNU CPP.

• Наборы символов:
• Первичная обработка:
• Токенизация:
• Язык предварительной обработки:

Далее: Файлы заголовков, Предыдущее: Начало, Вернуться к: Начало [Содержание][Индекс]

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

Spec-Zone.ru

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