码迷,mamicode.com
首页 > 其他好文 > 详细

有了#ifdef 为什么还需要#if defined

时间:2018-03-01 23:35:14      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:还需   分享图片   define   print   printf   size   需要   end   fine   

有了#ifdef 为什么还需要#if  defined ?

#include <stdio.h>
#define A 
#define B 
void test(int a,int b)
{
    
    
}

int main(void)
{
    #if 0
#ifdef A&&B
    test(printf("a\n"),printf("b\n"));
#endif
    #endif

#if  defined(A)&&defined(B)
    test(printf("a\n"),printf("b\n"));
#endif

    return 0;
}

技术分享图片

#if 0 注释掉之后:

技术分享图片

 

 可见,#ifdef虽然我们最常见也用得最多,可是#if defined(XXX)却可以有 &&,||,!,逻辑与,逻辑或,逻辑非等操作,而#ifdef却不支持这样的特性。

有了#ifdef 为什么还需要#if defined

标签:还需   分享图片   define   print   printf   size   需要   end   fine   

原文地址:https://www.cnblogs.com/yangguang-it/p/8490700.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!