Движок с нуля
Справочник

Препроцессор

Первая часть компиляции: выполняет строки, которые начинаются с #, и отдаёт компилятору получившийся текст. Сам C++ препроцессор не понимает, а только вставляет и заменяет текст.

Препроцессор работает до компилятора и видит в main.cpp не код, а текст. Препроцессор интересуют только строки, которые начинаются с #, — директивы. Всё остальное препроцессор пропускает как есть.

Директивы, которые встретятся в курсе:

  • #include <iostream> — вставить сюда весь текст файла. Это главная работа препроцессора.
  • #pragma once — пишется в начале своего заголовка: «если этот файл уже вставлен, второй раз не вставлять».
  • #define — задать имя, которое препроцессор заменит текстом.
  • #if … #endif — оставить кусок текста только при условии, например только в Debug-сборке.

В MSVC препроцессор — не отдельная программа, а первая часть cl.exe. Ошибки препроцессора приходят с теми же кодами, что и у компилятора, например C1083 — не найден файл, указанный в #include.