#ifdef和#if的区别
ifdef和if的区别
ifdef
1)#ifdef只是判断后面的标识符有没有定义,而不在乎标识符的值,标识符是0是1对它来说都没有区别,只要预先定义了,执行#ifdef后的代码;
2)#ifdef是和#else搭配使用的,没有#elif搭配之说;
3)#ifdef必须要有#endif配合使用;
#define IFTEST1 0
#define IFTEST2 1
int main()
{
#ifdef IFTEST1
printf("ifdef: %d\n", IFTEST1);
#else
printf("ifdef: not defined!\n");
#endif
return 0;
}
输出:ifdef:0
if
1)#if是要判断它后面表达式真假的,是真才执行#if后的代码;
2)#if和#elif搭配使用,这就可以用多种条件编译选择;
3)#if也是必须要以#endif配合使用。
#define IFTEST1 0
#define IFTEST2 1
int main()
{
#if IFTEST1 //为假,不执行
printf("if : %d\n", IFTEST1);
#elif IFTEST2 //为真,执行
printf("if : %d!\n", IFTEST2);
#else
printf("if : not true!\n");
#endif
return 0;
}
输出 if:1