不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

#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

posted on 2022-11-16 13:05  皮皮祥  阅读(376)  评论(0编辑  收藏  举报