Skip to main content

Cos'è la compilazione condizionale?

Nella programmazione di computer, la compilazione condizionale descrive la capacità di un compilatore software o di un processore di codice sorgente di includere o ignorare determinati comandi o blocchi di codice in base a istruzioni specifiche del linguaggio che non sono tecnicamente parte della specifica del linguaggio di programmazione principale.I comandi utilizzati per innescare la compilation condizionale in un programma sono spesso chiamati direttive pre-processore, sebbene possano anche essere noti come direttive del compilatore, commenti condizionali o definimenti condizionali.A seconda del compilatore o del linguaggio utilizzato, le direttive condizionali possono essere variabili o macro definite dall'utente, oppure potrebbero anche essere variabili di sistema impostate dal compilatore o dal sistema operativo.La compilation condizionale viene frequentemente utilizzata per configurare un singolo set di file di codice sorgente in modo che possano essere compilati in ambienti o sistemi operativi diversi senza dover scambiare o modificare i file di origine.

Le definizioni condizionali che vengono utilizzate per testare la compilazione condizionale possono variare daUna lingua all'altra, ma generalmente sono macro o altre espressioni di metadati al di fuori dell'ambito delle normali variabili del programma.In lingue come C, le variabili di solito sono macro che vengono lette da un pre-processore.Il più delle volte, le macro non sono accessibili dal codice sorgente del programma eseguibile effettivo, anche se esistono negli stessi file di origine.

Le direttive utilizzate per testare le variabili condizionali definite sono rudimentali e seguire la stessa logica di un se-Questa dichiarazione.I test di base che possono essere eseguiti per la compilazione condizionale sono se un valore viene definito, non definito o, in alcuni casi, se due variabili definite sono equivalenti.Le variabili o le stesse macro generalmente non hanno alcun valore di significato, perché l'atto di definirle è ciò che le direttive stanno verificando.Con alcune lingue e compilatori, tuttavia, il valore di una variabile definita può importare se vengono valutati per lo stato booleano.

Quando un compilatore incontra le direttive utilizzate per la compilazione condizionale, le direttive vengono valutate per vedere se testano come vere o false.Se vero, il codice che segue la direttiva viene compilato come normale;Altrimenti, il compilatore salterà completamente il codice contenuto nella direttiva.Ciò è diverso dalle dichiarazioni logiche condizionali all'interno del codice del programma eseguibile stesso perché, anche se la logica ha un blocco di codice che non può essere eseguito, verrà comunque interpretato e compilato nella maggior parte dei casi.Con le direttive pre-processori condizionali, il codice saltato non viene mai incluso, interpretato o compilato.Va anche notato che una volta che il pre-processore ha valutato tutte le variabili e le direttive condizionali, non sono compilati con il resto del programma, perché sono destinati solo a fornire indicazioni al compilatore. La compilation condizionale più spesso èUtilizzato per includere o escludere il codice specifico per un particolare sistema operativo o ambiente.Ciò significa che le librerie che esistono in un sistema operativo possono essere incluse condizionalmente se le direttive determinano il programma viene compilato in base a tale sistema operativo.In alternativa, le direttive possono anche essere utilizzate per includere o escludere il codice in base alle variabili definite dall'utente.Questo può essere fatto in modo che il codice di debug o profilazione non sia incluso nella versione finale di un programma, o quindi alcune funzionalità possono essere abilitate o disabilitate senza dover mantenere copie separate del codice.