Condividi tramite


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;

Direttive preprocessore (DirectX HLSL)

overload #define

direttiva #undef (DirectX HLSL)