zoukankan      html  css  js  c++  java
  • #ifdef...#endif作用

    #ifdef语句1
      //程序2
    #endif

    可翻译为:如果宏定义了语句1则程序2。
    作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。

    解释如下:
    代码举例:新建define.cpp文件

    #include<iostream>
    usingnamespacestd;
    intmain(intargc,char*argv[])
    {
        #ifdefDEBUG
      cout<<"Beginningexecutionofmain()"<<endl;
      #endif
      return0;
    }

    运行结果为:

    Pressanykeytocontinue
      
    改写代码如下:

    #include<iostream>
    usingnamespacestd;
    #defineDEBUG
    intmain(intargc,char*argv[])
    {
      #ifdefDEBUG
      cout<<"Beginningexecutionofmain()"<<endl;
      #endif
      return0;
    }

    运行结果为:

    Beginningexecutionofmain()
    Pressanykeytocontinue
      

    更一般的情况是,#define语句是包含在一个特定的头文件中。
    又比如,新建头文件head.h,在文件中加入代码:

    #defineDEBUG
    #ifdefDEBUG
    #endif
    
    而在define.cpp源文件中,代码修改如下:
    #include<iostream>
    #include"head.h"
    intmain(intargc,char*argv[])
    {
      #ifdefDEBUG
      cout<<"Beginningexecutionofmain()"<<endl;
      #endif
      return0;
    }

    运行结果如下:

    Beginningexecutionofmain()
    Pressanykeytocontinue
      
    结论:
    通过使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。

    Smartkeke
  • 相关阅读:
    ....
    CodeForces 375A(同余)
    POJ 2377 Bad Cowtractors (最小生成树)
    POJ 1258 AgriNet (最小生成树)
    HDU 1016 Prime Ring Problem(全排列)
    HDU 4460 Friend Chains(bfs)
    POJ 2236 Wireless Network(并查集)
    POJ 2100 Graveyard Design(尺取)
    POJ 2110 Mountain Walking(二分/bfs)
    CodeForces 1059B Forgery(模拟)
  • 原文地址:https://www.cnblogs.com/smartkeke/p/6978346.html
Copyright © 2011-2022 走看看