2013-02-23 13 views

risposta

11
if (debug) 
    DoWork(); 
else 
    DoAnotherWork(); 

Il codice sopra riportato verrà compilato e la condizione verrà verificata in fase di esecuzione.

#if 
    DoWork(); 
#else 
    DoAnotherWork(); 
#endif 

Queste dichiarazioni verranno verificate in fase di compilazione.

Quindi se la condizione #if è vera, DoWork(); sarà compilato e altrimenti DoAnotherWork(); sarà compilato Dove, come nell'esempio precedente, verrà compilato tutto il codice inclusa la dichiarazione if.

Si prega di leggere questo sul preprocessore direttive

Preprocessor Directives

+0

È inoltre possibile aggiungere un collegamento alle direttive logiche –

9

primo è Preprocessor Directive e la seconda Logical statement.

+2

Nonostante il volume di upvotes, questa non è la migliore risposta. senza i collegamenti, la tua risposta non spiega il significato di entrambi i concetti. La tua risposta dovrebbe stare da sola per riferimento futuro. Per favore considera di ampliare la tua risposta in modo che i link completino la risposta e non fornisca i soli dettagli – psubsee2003

+1

Penso che sia abbastanza buono da solo. È una spiegazione in una frase e non è necessario fare clic sui collegamenti per capirlo. – Fionnuala

6

La prima versione utilizza le direttive del preprocessore. Queste sono istruzioni per il compilatore stesso per compilare solo alcune affermazioni. Il file eseguibile risultante includerà solo le istruzioni compilate. La condizione deve quindi essere qualcosa che può essere valutata in fase di compilazione.

La seconda versione viene valutata in fase di esecuzione. Il compilatore compilerà tutte le istruzioni e la logica per valutare la condizione if. Tutte le istruzioni saranno incluse nel file eseguibile risultante. E quale affermazione viene effettivamente eseguita verrà determinata quando il codice viene eseguito.