Я никогда не работал с #if, #ifdef, #ifndef, #ELSE, #elif и #endif.Преимущества условно-препроцессора более условных операторов
Поскольку я просматривал некоторые исходные коды, я нашел широкое применение этих директив. Прочитал некоторые условные препроцессоры, но не нашел подсказки, как как они отличаются от обычных условных операторов. Так мне было интересно, что такое преимущество следующего кода:
#include<iostream>
int main()
{
int i = 0;
#if i == 0
std::cout<<"This";
#else
std::cout<<"That";
#endif
return 0;
}
по этому поводу:
#include<iostream>
int main()
{
int i = 0;
if (i == 0)
std::cout<<"This";
else
std::cout<<"That";
return 0;
}
Кроме того, при использовании/не в использовании условно-препроцессора?
Для начала, 'if' оценивается во время выполнения, а' # if' оценивается до компиляции. – Aiias
http://stackoverflow.com/help/dont-ask – xaxxon
@xaxxon: Вы можете объяснить, как эта ссылка имеет значение? – Blender