Препроцессор
Первая часть компиляции: выполняет строки, которые начинаются с #, и отдаёт компилятору получившийся текст. Сам C++ препроцессор не понимает, а только вставляет и заменяет текст.
Препроцессор работает до компилятора и видит в main.cpp не код, а текст.
Препроцессор интересуют только строки, которые начинаются с Директива — это строка-команда для препроцессора. Она начинается с #, — # и сообщает, что сделать с текстом до компиляции: вставить файл, заменить слово, оставить или убрать кусок кода.
Директивы, которые встретятся в курсе:
#include <iostream>— вставить сюда весь текст файла. Это главная работа препроцессора.#pragma once— пишется в начале своего заголовка: «если этот файл уже вставлен, второй раз не вставлять».#define— задать имя, которое препроцессор заменит текстом.#if…#endif— оставить кусок текста только при условии, например только в Debug-сборке.
В MSVC препроцессор — не отдельная программа, а первая часть cl.exe.
Ошибки препроцессора приходят с теми же кодами, что и у компилятора, например
C1083 — не найден файл, указанный в #include.