Differenze tra le versioni di "C/Compilatore e precompilatore/Direttive"

m
corr. link
m (Bot: Sostituzione automatica (-\{\{[Ll]inguaggio[ _]C\}\} +{{C}}))
m (corr. link)
}
</source>
Abbiamo trattato l'{{IndexItem|operatore ?}}operatore ? [[Linguaggio_CC/Blocchi_e_funzioni/Blocchi_if_e_switch#L.27operatore_.3F|qui]].
 
==={{IndexItem|direttive #if, #else, #elif ed #endif}}<tt>#if, #else, #elif ed #endif</tt>===
 
Queste direttive servono per la {{IndexItem|compilazione condizionale}}''compilazione condizionale''. Il loro uso è del tutto analogo a quello dell'[[Linguaggio_CC/Blocchi_e_funzioni/Blocchi_if_e_switch|istruzione <tt>if</tt>]], ma con una sostanziale differenza: mentre in una normale istruzione <tt>if</tt> la condizione viene valutata a tempo di esecuzione per decidere quale gruppo di istruzioni eseguire, la direttiva #if seleziona a tempo di compilazione quale gruppo di istruzioni debba essere compilato, mentre le istruzioni scartate vengono completamente rimosse e, ai fini del codice eseguibile prodotto, è come non fossero esistite.
 
Come conseguenza immediata, le espressioni lecite in una direttiva #if sono solo ed esclusivamente quelle valutabili interamente a tempo di compilazione.