direttiva #define (costante)
Direttiva preprocessore che assegna un nome significativo a una costante nell'applicazione.
#define identifiertoken-string |
---|
Parametri
Elemento | Descrizione |
---|---|
Identificatore |
Identificatore della costante. |
token-string [facoltativo] |
Valore della costante. Questo parametro è costituito da una serie di token, ad esempio parole chiave, costanti o istruzioni complete. Uno o più caratteri di spazio vuoto devono separare questo parametro dal parametro identificatore ; questo spazio vuoto non è considerato parte del testo sostituito, né è uno spazio vuoto che segue l'ultimo token del testo. Se si esclude questo parametro, tutte le istanze del parametro identificatore vengono rimosse dal file di origine. L'identificatore rimane definito e può essere testato usando le direttive #if definite, #ifdef e #ifndef. |
Commenti
Tutte le istanze del parametro identificatore che si verificano dopo la direttiva #define nel file di origine verranno sostituite dal valore del parametro token-string . L'identificatore viene sostituito solo quando forma un token; ad esempio, l'identificatore non viene sostituito se viene visualizzato in un commento, all'interno di una stringa o come parte di un identificatore più lungo.
La direttiva #undef indica al preprocessore di dimenticare la definizione di un identificatore; per altre informazioni, vedere direttiva #undef (DirectX HLSL).
La definizione di costanti con l'opzione del compilatore /D ha lo stesso effetto dell'uso della direttiva #define all'inizio del file. È possibile definire fino a 30 costanti con l'opzione /D. Per un esempio di come può essere usato, vedere la sezione Esempi di #ifdef e ).
Esempio
L'esempio seguente definisce l'identificatore WIDTH come costante integer 80 e quindi definisce LENGTH in termini di WIDTH e la costante integer 10.
#define WIDTH 80
#define LENGTH ( WIDTH + 10 )
Ogni istanza successiva di LENGTH viene sostituita da (WIDTH + 10) e ogni istanza successiva di WIDTH + 10 viene sostituita dall'espressione (80 + 10). Le parentesi intorno a WIDTH + 10 sono importanti perché controllano l'interpretazione in istruzioni come le seguenti.
var = LENGTH * 20;
Dopo la fase di pre-elaborazione, l'istruzione diventa la seguente, che restituisce 1.800.
var = ( 80 + 10 ) * 20;
Senza parentesi, il risultato sarà il seguente, che restituisce 280.
var = 80 + 10 * 20;