Je n'ai jamais travaillé avec #if, #ifdef, #ifndef, #else, #elif et #endif.Avantages de conditionnel préprocesseur sur les déclarations conditionnelles
En passant en revue certains codes sources, j'ai trouvé une utilisation extensive de ces directives. Est-ce que certaines lectures sur les préprocesseurs conditionnels n'ont pas trouvé d'indice comme en quoi sont-elles différentes des instructions conditionnelles normales. Je me demandais quel est l'avantage de code suivant:
#include<iostream>
int main()
{
int i = 0;
#if i == 0
std::cout<<"This";
#else
std::cout<<"That";
#endif
return 0;
}
sur ceci:
#include<iostream>
int main()
{
int i = 0;
if (i == 0)
std::cout<<"This";
else
std::cout<<"That";
return 0;
}
Aussi, lorsque à utiliser/non à usage conditionnel préprocesseur?
Pour les démarreurs, 'if' est évalué au moment de l'exécution et' # if' est évalué avant la compilation. – Aiias
http://stackoverflow.com/help/dont-ask – xaxxon
@xaxxon: Pouvez-vous expliquer en quoi ce lien est pertinent? – Blender