AFAIK, i simboli sono utili per impedire l'analisi multipla. Se entrambi a.h e b.h includono c.h, unAmbito di un simbolo C++
#ifndef C_H
#define C_H
...
// c.h definition would go here
...
#endif
impedirà c.h dall'essere "analizzata" (credo che non è la parola giusta) più di una volta. qualcosa
Tuttavia, ho visto come
#ifdef WIN32
...
in codice di altre persone. Quel simbolo deve essere stato definito da qualche altra parte perché una ricerca di
#define WIN32
nell'intero progetto restituisce vuoto. La mia domanda è: dove sono effettivamente definiti questi simboli? Il sistema operativo mantiene qualcosa di simile a un pool di simboli che diversi programmi possono utilizzare per interrogare il sistema operativo o altre proprietà dei processi?
È possibile impostare le definizioni del preprocessore dalle impostazioni della riga di comando/opzioni ide. In VS, guarda sotto "C/C++ -> Preprocessore". –