В книге K & R The C Programming Language. не
Страницы №: 88
C предоставляет определенные возможности языка с помощью препроцессора, который концептуально отдельного первого шага в компиляции.
В книге Compiler Principles, Techniques and Tools by Aho, Lam, Sethi and Ullman
Page No.3
Задача сбора исходной программы иногда возложено на отдельную программу, называемую препроцессор. Препроцессор может также расширять сокращенные имена, называемые макросами, в операторы исходного языка. Измененная исходная программа - , а затем подана в компилятор.
В GCC GNU Documentation
Препроцессор Си является макро-процессор, который автоматически используется компилятором C, чтобы превратить вашу программу до фактической компиляции.
Andn читать this также.
Так из этих трех официальных источников, можно сказать, что Препроцессор программа отдельного управляет компилятором. Таким образом, в книге Let Us C от Yashwant P Kanetkar, что препроцессор - это программа, которая обрабатывает до того, как компилятор будет предлагать свое имя, не является неправильным, а расширенный код можно увидеть в файле file.i.
Теперь давайте прийти на ваш вопрос,
В книге K & R The C Programming Language.
Страница №: 89
Замена не производятся только для лексем и не происходит в кавычках.
и, как Basile не сказал в своем ответе, что
В современных компиляторов C (по соображениям производительности) препроцессор больше не является отдельной программой, она является частью самого компилятора.
и компилирование представляет собой длительный процесс, который проходит через несколько phases, препроцессор на самом деле происходит после того, как программа преобразуется в жетонах, но в качестве источников говорит, что это процесс перед компиляцией, что означает, что это будет сделано перед любым вид промежуточной генерации кода, и да, нарушение программы в токенах является первым шагом компилятора перед любым промежуточным генерированием кода.
Закройте книгу и отложите ее в сторону. Не выбрасывайте его! Если у вас есть шанс встретиться с автором, возьмите книгу и избили его по голове. Это единственный способ, которым эта книга может быть полезна. Теперь найдите [собственный учебник C] (http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list) и приступайте к работе. Да, я посмотрел книгу (не спрашивайте). –
Ваш вопрос непонятен? Вы имеете в виду токенизацию? – Rishi