#if 0 ... #endif的真实用途

转载 2015年11月20日 09:27:49

iOS添加注释的方法:

1.最常用的"//"

2.多行注释"/**/"

3.当代码内嵌时会出现很多问题比如代码有"*/"会影响判断,这里会用到快捷键"comand + /",多行注释最常用的方法]

4.有时候还会用到#if 0...#endif 有时候可以配合else使用


以下内容转载自:http://blog.csdn.net/raining_heart/article/details/8019535

感谢作者

在过去都没有去理会#if 的作用,今天突发奇想,开启编译器试一试。

很多人都知道,#if  0  ...   #endfif的作用跟/*...*/的作用是一样的,就是注释,可是注释为什么不用注释符号/*就行了么?google了一下,大家都说是为了解决嵌套注释。如:

/*--------------------------------------------------------------------*/

#include“stdio.h”

int main()

{

            int  a=11;

/*这是一个外层注释

        /*

            int *b=&a;                     //这是一个内层代码注释

            *b = 10;

       */

             a++;

*/

}

/*----------------------------------------------------------------------*/

上面的程序编译后发现缺少了一个注释符号,因为注释符头 " / *  "是根据最近结束符 " */  "来判断注释的区域的,但是一但内嵌了就会发现错误。所以人们就使用了#if 0,如下:

/*--------------------------------------------------------------------*/

#include“stdio.h”

int main()

{

             int  a=11;

/*这是一个外层注释

#if  0    

             int *b=&a;                     //这是一个内层代码注释

             *b = 10;

#endif

              a++;

*/

}

/*----------------------------------------------------------------------*/

但是,#if就只有这个作用吗?有些书籍呼吁人们尽量少用它,那不是没有什么意义了?

其实不是的,在有些地方很常见到它,而且少不了它。当你见识过系统级的源代码就焕然大悟了。对,就是用于系统裁剪。

系统裁剪是针对系统的用途,对系统的源代码进行一下优化,减少不必要的功能。

#if是一个最经典的例子。如:

/*--------------------------------------------------------------------*/

#include“stdio.h”

#define TEST_2    1

int main()

{

            int  a=11;

/*这是一个外层注释

#if  TEST_2  

             int *b=&a;                     

             *b = 10;

#endif

              a++;

*/

}

/*----------------------------------------------------------------------*/

如上面的例子,对于某些功能不需要,我们只需对于的功能TEST_2的宏定义改成0,然后重新编译就行了。当然一般宏定义是放在一个特定的文件(这里为了简单就写在一起),这样外面的人只需要更改那个文件所对应的值就行对系统进行裁剪而不需要关心具体代码,就行实现裁剪。

#if 0 ... #endif的真实用途

在过去都没有去理会#if 的作用,今天突发奇想,开启编译器试一试。 很多人都知道,#if  0  ...   #endfif的作用跟/*...*/的作用是一样的,就是注释,可是注释为什么不用注释...
  • u010781856
  • u010781856
  • 2015年05月05日 22:11
  • 254

linux之#if 0 ... #endif用途

在过去都没有去理会#if 的作用,今天突发奇想,开启编译器试一试。 很多人都知道,#if  0  ...   #endfif的作用跟/*...*/的作用是一样的,就是注释,可是注释为什么不用注释符号...
  • shenhuan1104
  • shenhuan1104
  • 2017年09月09日 14:57
  • 215

#ifndef/#define/#endif使用详解

想必很多人都看过“头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件...
  • abc5382334
  • abc5382334
  • 2014年01月09日 22:22
  • 74517

#if 0...#endif #if defined()...#endif #ifdef...#endif #ifndef...#endif 等的用法

本文综合参考http://blog.csdn.net/raining_heart/article/details/8019535和http://quanminchaoren.iteye.com/blo...
  • lijia11080117
  • lijia11080117
  • 2016年02月24日 15:24
  • 824

浅谈#ifndef~#define~#endif~的作用

/* #ifndef _STDAFX_H #define _STDAFX_H #include         //cin  cout #include           //mallo...
  • qq_22122811
  • qq_22122811
  • 2016年09月18日 21:29
  • 7096

C语言中#if 0,#if 1,#else,#endif的作用

在C语言中时常会用到#if 0,#if 1,#else,#endif语句,语句如下所示: #if 0     code1 #else     code2 #endif 此时code1的语句...
  • wwwsssZheRen
  • wwwsssZheRen
  • 2018年01月16日 17:20
  • 73

#ifdef与#endif用途

#ifdef 用法
  • oywoywoyw
  • oywoywoyw
  • 2010年10月12日 15:33
  • 360

IsWow64的真实用途

如何当前操作系统是不是64位?如何判断当前应用程序是否在Wow64下运行? 首先什么是Wow64?很多朋友一看到64就认为这个方法是判断当前系统是否是64bit的,其实不然。Wow64是Window...
  • whatday
  • whatday
  • 2013年03月20日 15:55
  • 996

拾记-C语言#if0/#if1...#endif的作用

参考链接:http://www.cnblogs.com/kevinGaoblog/archive/2012/04/20/2459814.html 产生背景:C标准不提供C++里的“//”这样的单行风...
  • qq_24954975
  • qq_24954975
  • 2017年10月12日 15:02
  • 80

#if 0 ….. #endif的意义

#if的一般含义是如果#if后面的常量表达式为true,则编译它与#endif之间的代码,否则跳过不编译这 一段代码。 怎#if 0 …… #endif 表示注释省略号里面的内容,因为#if...
  • kofandlizi
  • kofandlizi
  • 2011年06月15日 20:37
  • 2953
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:#if 0 ... #endif的真实用途
举报原因:
原因补充:

(最多只允许输入30个字)