AFAIK, символы полезны для предотвращения множественного разбора. Если оба хиджр и b включают c.h,Сфера символа C++
#ifndef C_H
#define C_H
...
// c.h definition would go here
...
#endif
предотвратит c.h от «разобранного» (я считаю, что это не правильное слово) более чем один раз.
Однако, я видел что-то вроде
#ifdef WIN32
...
в коде других людей. Этот символ должен быть определен где-то в другом месте, потому что поиск
#define WIN32
в целом проект возвращается пустым. Мой вопрос: где эти символы действительно определены? Оставляет ли ОС что-то похожее на пул символов, которые могут использоваться различными программами для запроса свойств ОС или других процессов?
Можно установить определения препроцессора из параметров командной строки/ide. В VS смотрите «C/C++ -> Препроцессор». –