Spec-Zone.ru › GCC 4 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-4.9.4/cpp/Overview.html

Spec-Zone.ru

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