C/Compilatore e precompilatore/Direttive: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
BimBot (discussione | contributi)
m Bot: Sostituzione automatica (-\{\{[Ll]inguaggio[ _]C\}\} +{{C}})
Pietrodn (discussione | contributi)
m corr. link
Riga 31:
}
</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.