"#ifdef 语句1 
  程序2
  #endif“   
可翻译为:如果宏定义了语句1则程序2。   
作用:我们可以用它区隔一些与特定头文件、程序库和其他文件版本有关的代码。
  代码举例:新建define.cpp文件
  #include "iostream.h"
  int main()
  {   #ifdef DEBUG
  cout<< "Beginning execution of main()";
  #endif
  return 0;
  }
  运行结果为:
  Press any key to continue
  改写代码如下:
  #include "iostream.h"
  #define DEBUG
  int main()
  {
  #ifdef DEBUG
  cout<< "Beginning execution of main()";
  #endif
  return 0;
  }   
运行结果为:
  Beginning execution of main()
  Press any key to continue
  更一般的情况是,#define语句是包含在一个特定的头文件中。
比如,新建头文件head.h,在文件中加入代码:
  #define DEBUG
  #ifdef DEBUG
  #endif
  而在define.cpp源文件中,代码修改如下:
  #include "iostream.h"
  #include "head.h"
  #define DEBUG
  int main()
  {
  #ifdef DEBUG
  cout<< "Beginning execution of main()";
  #endif
  return 0;
  }
  运行结果如下:
  Beginning execution of main()
  Press any key to continue
  结论:   
通过使用#ifdef指示符,我们可以区隔一些与特定头文件、程序库和其他文件版本有关的代码。

#ifdef endif 用法的更多相关文章

  1. #ifdef的用法【转】

    #ifdef的用法     #ifdef的用法灵活使用#ifdef指示符,我们可以区隔一些与特定头文件.程序库和其他文件版本有关的代码.代码举例:新建define.cpp文件 #include &qu ...

  2. c++ #ifdef的用法

    http://www.tuicool.com/articles/mIJnumB #ifdef的用法 灵活使用#ifdef指示符,我们可以区隔一些与特定头文件.程序库和其他文件版本有关的代码.代码举例: ...

  3. `ifdef、`else、`endif 用法

    一般情况下,Verilog HDL源程序中所有的行都参加编译.但是有时候希望对其中的一部份内容只有在条件满足的时候才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”.有时,希望当满足条件 ...

  4. 【转】#ifdef _DEBUG用法小结

    原文地址:http://blog.csdn.net/shijizhisheng/article/details/1908054 1 #ifdef _DEBUG virtual void AssertV ...

  5. 预编译指令#ifdef #endif

    这个是C中的.意思是说如果你定义了某个东西,则执行一段代码,这段代码是包含在ifdef到endif之间的.比如,你debug一个程序,但是到最后你需要将debug的代码删掉,很多则很麻烦.但是如果你那 ...

  6. #ifdef #endif #if #endif

    c语言里所有以#开头的都是预编译指令,就是在正式编译之前,让编译器做一些预处理的工作. #ifdef DEBUG printf("variable x has value = %d\n&qu ...

  7. ifndef/define/endif 和 #ifdef 、#if 作用和用法

    为了能简单的看看某些linux内核源码,复习了一下c语音,今天汇总了一下关于宏定义的相关内容: 一.ifndef/define/endif用法: .h文件,如下: #ifndef XX_H #defi ...

  8. #ifdef、#ifndef、#else、#endif执行条件编译

         我们开发的程序不只在pc端运行,也要在移动端运行.这时程序就要根据机器的环境来执行选择性的编译,如对PC端编译PC端的程序,对移动端编译移动端的程序,这里我们就可以用两组条件编译.     ...

  9. 编译预处理命令--define和ifdef的使用

    这里将对常用的预处理命令进行学习. 一.宏定义  ·defined 格式:`defined     宏名      数值 或者 `define      宏名 注意:后面没有‘;‘,和单片机不一样: ...

随机推荐

  1. Grace Huang 2017/1/12

    原文 Huang doesn't think of acting as pretending to be someone else.Rather,she considers it an opportu ...

  2. 原创 :xftp SFTP子系统申请已拒绝 请确保SSH链接的SFTP子系统设置有效

    在出现这个错误时候 如果你的远程连接没有问题 那么就执行下面的命令 service sshd restart 搞定!

  3. OpenGL Frustum参数设置

    opengl中使用Frustum来设置透视投影,函数原型: frustum(float left, float right, float buttom, float top, float near, ...

  4. HDOJ 4509 湫湫系列故事——减肥记II(2013腾讯编程马拉松) 并查集合并区间

    发现这种合并区间的题目还可以这么玩 给你n段时间 然后问没被占用的时间是多少 题目所给的区间是右开的导致我wa 好多人5e5*1440的暴力跑出来的时间居然只是我的两倍 不懂.... 所以并查集并没有 ...

  5. java程序-类的高级特性

    创建Employee类,在类中定义三个属性:编号,姓名,年龄,然后在构造方法里初始化这三个属性,最后在实现接口中的定义的CompareTo方法,将对象按编号升序排列. 代码如下:(程序可能有些错误,方 ...

  6. uaf-湖湘杯2016game_学习

    0x00 分析程序 根据分析,我们可以得到以下重要数据结构 0x01 发现漏洞 1.在武器使用次数耗光后,程序会把存储该武器的堆块free,在free的时候没有清空指针,造成悬挂指针 2.commen ...

  7. PAT (Basic Level) Practise (中文)-1038. 统计同成绩学生(20)

    PAT (Basic Level) Practise (中文)-1038. 统计同成绩学生(20)    http://www.patest.cn/contests/pat-b-practise/10 ...

  8. MySQL中日期函数的使用

    1. MySQL中日期函数的使用 1.1. 转DATETIME类型为Date类型 将add_time ::56转化为date类型 select * from product where Date(ad ...

  9. RabbitMQ 初体验

    概述 RabbitMQ是一款消息队列中间件.他提供了几乎覆盖所有语言的SDK与文档,简直强大的不的了.要详细的去了解学习RabbitMQ,我建议还是看官方文档吧.http://www.rabbitmq ...

  10. perl学习之argument

    Arguments are the values you pass to a Perl script. Each value on the command line after the name of ...