Direttiva (programmazione)
# Direttiva (programmazione)

In programmazione, il termine direttiva o pragma (da "pragmatico") si usa per descrivere determinati costrutti di un linguaggio di programmazione che, specificati nel codice sorgente di un programma, vengono letti ed eseguiti dal preprocessore. Le direttive consentono di effettuare delle operazioni preliminari sul codice sorgente prima che questo venga passato al compilatore o di definire dei parametri per specificare che tipo di compilazione deve essere eseguita.

La sintassi e l'uso delle direttive di compilazione variano sensibilmente da un linguaggio di programmazione all'altro.

## Usi delle direttive di compilazione

### Debugging

Tramite le direttive di compilazione, è possibile attivare o disattivare tutte le funzionalità di debugging all'interno di un programma o di un modulo (ad esempio una classe) semplicemente definendo un valore per una direttiva piuttosto che un altro.

### Performance

Le direttive di compilazione consentono di non compilare parti di codice che, ad esempio, non vengono mai utilizzate in un programma. In questo modo, all'avvio verrà risparmiata memoria inutilmente allocata. Un altro esempio è che è possibile informare il compilatore sul tipo di computer di destinazione per il programma; in tal modo, esso può trasformare il codice utilizzando istruzioni specifiche per il tipo di processore indicato, aumentando notevolmente le performance del programma in fase di esecuzione.

### Selezione di funzionalità

Inoltre, utilizzando le direttive di compilazione opportune è possibile in molti linguaggi far sì che il compilatore compili solo le funzionalità desiderate. Ad esempio, è possibile creare facilmente più versioni di uno stesso programma - ad esempio, Basic, Home e Professional - ognuna con funzionalità ben determinate e caratteristiche di tale versione.

## Le direttive di compilazione in vari linguaggi di programmazione

### Linguaggio assembly

Nel linguaggio assembly, le direttive generalmente specificano l'informazione della piattaforma target, specificano le separazioni tra le sezioni, e così via. Ad esempio, la direttiva "ALIGN" inserisce nella sezione corrente tanti byte quanti sono richiesti per preservare l'allineamento a livello di word.

### C / C++

Nel linguaggio C e nel C++ le direttive di compilazione vengono espresse da determinate istruzioni poste su righe di codice che comincino con un simbolo cancelletto "#" (ad esempio: #define e #include) e sono eseguite da un preprocessore.

I costrutti sintattici simili alle direttive del preprocessore C, quali la direttiva #if del C#, sono chiamati anch'essi "direttive", sebbene in alcuni casi non riguardino la vera e propria fase di preprocessamento.

### VisualBasic

Alcune versioni di questo linguaggio (Microsoft Visual Basic 6.0) supportano le direttive di compilazione. Le righe cominciano, come il C/C++, con il simbolo cancelletto ("#"). Esempio di compilazione condizionale:

#if DEBUG_VAR then 'istruzioni

