当注释掉大块代码时,使用"#if 0"比使用"/**/"要好,因为用"/**/"做大段的注释要防止被注释掉的代码中有嵌套的"/**/",这会导致注释掉的代码区域不是你想要的范围, 当被注释掉的代码很大时容易出现这种情况,特别是过一段时间后又修改该处代码时更是如此。
在这里顺便对条件编译(#ifdef, #else, #endif, #if等)进行说明。以下分3种情况:
  . 情况1:
  #ifdef _XXXX
  ...程序段1...
  #else
  ...程序段2...
  #endif
  这表明如果标识符_XXXX已被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。
  例:
  #define NUM
  .............
  .............
  .............
  #ifdef NUM
   printf("之前NUM有过定义啦!:) \n");
  #else
   printf("之前NUM没有过定义!:( \n");
  #endif
  }
  如果程序开头有#define NUM这行,即NUM有定义,碰到下面#ifdef NUM的时候,当然执行第一个printf。否则第二个printf将被执行。
  我认为,用这种,可以很方便的开启/关闭整个程序的某项特定功能。
  :情况2:
  #ifndef _XXXX
  ...程序段1...
  #else
  ...程序段2...
  #endif
  这里使用了#ifndef,表示的是if not def。当然是和#ifdef相反的状况(如果没有定义了标识符_XXXX,那么执行程序段1,否则执行程序段2)。例子就不举了。
  :情况3:
  #if 常量
  ...程序段1...
  #else
  ...程序段2...
  #endif
  这里表示,如果常量为真(非0,随便什么数字,只要不是0),
就执行程序段1,否则执行程序段2。
如果有#if需要顶格写

随机推荐

  1. 学成在线(第17天)用户认证 Zuul

    用户认证 用户认证流程分析 用户认证流程如下: 业务流程说明如下: 1.客户端请求认证服务进行认证.2.认证服务认证通过向浏览器cookie写入token(身份令牌)认证服务请求用户中心查询用户信息. ...

  2. 修改Xshell字体大小和颜色

    博客专区 > XManager的博客 > 博客详情 修改Xshell字体大小和颜色 XManager 发表于7个月前 分享到: 一键分享 QQ空间 微信 腾讯微博 新浪微博 QQ好友 有道 ...

  3. 图的数据结构的实现与遍历(DFS,BFS)

    //图的存储结构:const int MAXSIZE = 10;//邻接矩阵template<class T>class MGraph {public:    MGraph(T a[], ...

  4. pgsql数据库 pg_hba.conf 中 METHOD 的说明

    pg_hba.conf 文件是pgsql用于配置访问权限的配置文件,  内容如下: ##############begin#################### #   TYPE    DATABA ...

  5. 扩展新函数给window

    page.exposeFunction(name, puppeteerFunction) name <string> Name of the function on the window ...

  6. 《ES6标准入门》(阮一峰)--12.Symbol

    1.概述 ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种 ...

  7. C++面试常见问题——11重载、覆盖、隐藏

    重载.覆盖.隐藏 重载 在同一类定义的成员函数中,参数不同的同名函数为重载关系.重载与虚函数无关. class A{ private: int x; public: void fun(int); // ...

  8. PHP-WebShell-Bypass-WAF

    PHP-WebShell-Bypass-WAF PHP WebShell 一句话的结构是:输入和执行,这是经典的PHP 一句话代码: <?php eval($_GET['test']); ?&g ...

  9. Minikube安装

    参考 https://blog.csdn.net/liumiaocn/article/details/52041726?locationNum=4&fps=1 中文社区API http://d ...

  10. Educational Codeforces Round 65 选做

    好久没更博客了,随便水一篇 E. Range Deleting 题意 给你一个长度为 \(n\) 的序列 \(a_1,a_2,\dots a_n\) ,定义 \(f(l,r)\) 为删除 \(l\le ...