Non ho mai lavorato con #if, #ifdef, #ifndef, #else, #elif e #endif.Vantaggi del condizionale-preprocessore oltre istruzioni condizionali
Mentre stavo esaminando alcuni codici sorgente, ho trovato un ampio uso di queste direttive. Ha fatto qualche lettura sui preprocessori condizionali ma non ha trovato alcun indizio come in che modo sono diversi dalle normali istruzioni condizionali. Così mi chiedevo che cosa è il vantaggio di codice seguente:
#include<iostream>
int main()
{
int i = 0;
#if i == 0
std::cout<<"This";
#else
std::cout<<"That";
#endif
return 0;
}
su questo:
#include<iostream>
int main()
{
int i = 0;
if (i == 0)
std::cout<<"This";
else
std::cout<<"That";
return 0;
}
Inoltre, quando da usare/non utilizzo condizionale-preprocessore?
Per i primi, 'if' viene valutato in fase di esecuzione e' # if' viene valutato prima della compilazione. – Aiias
http://stackoverflow.com/help/dont-ask – xaxxon
@xaxxon: Puoi spiegare in che modo quel collegamento è rilevante? – Blender