您的位置:首页 > 其它

#if

2015-12-28 14:19 232 查看

#if

当注释掉大块代码时,使用”#if 0”比使用”//”要好,因为用”//”做大段的注释要防止被注释掉的代码中有嵌套的”/**/”,这会导致注释掉的代码区域不是你想要的范围, 当被注释掉的代码很大时容易出现这种情况,特别是过一段时间后又修改该处代码时更是如此。

在这里顺便对条件编译(#ifdef, #else, #endif, #if等)进行说明。以下分3种情况:

  1. 情况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:情况2:

  #ifndef _XXXX

  …程序段1…

  #else

  …程序段2…

  #endif

  这里使用了#ifndef,表示的是if not def。当然是和#ifdef相反的状况(如果没有定义了标识符_XXXX,那么执行程序段1,否则执行程序段2)。例子就不举了。

  3:情况3:

  #if 常量

  …程序段1…

  #else

  …程序段2…

  #endif

  这里表示,如果常量为真(非0,随便什么数字,只要不是0),

就执行程序段1,否则执行程序段2。

如果有#if需要顶格写
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: