当前位置: 技术问答>linux和unix
问关于预编译的很菜的问题!
来源: 互联网 发布时间:2015-09-28
本文导语: 是这样的,在我看到的一些linux下的c程序中,常遇到下面格式的语句: #if 0 语句1... 语句2... 语句3... 语句4... .. .. .. .. #endif 按照预编译的命令,#if 后面的表达式的值不为0,则编译...
是这样的,在我看到的一些linux下的c程序中,常遇到下面格式的语句:
#if 0
语句1...
语句2...
语句3...
语句4...
..
..
..
..
#endif
按照预编译的命令,#if 后面的表达式的值不为0,则编译下面的程序;
而在这里直接写0,明明不就是跳过这一段,不编译它,为什么还要这样写呢?
请高手解释一下,谢谢!!!
#if 0
语句1...
语句2...
语句3...
语句4...
..
..
..
..
#endif
按照预编译的命令,#if 后面的表达式的值不为0,则编译下面的程序;
而在这里直接写0,明明不就是跳过这一段,不编译它,为什么还要这样写呢?
请高手解释一下,谢谢!!!
|
知道了,
是注析,相当于/** ... */
黑客写法
是注析,相当于/** ... */
黑客写法
|
这是一种习惯吧
如果用/**/
那么真的需要这段代码的时候 比较麻烦
如果用#if 0 想要 下面的代码 改成 #if 1 即可
一般作为试探性代码
如果用/**/
那么真的需要这段代码的时候 比较麻烦
如果用#if 0 想要 下面的代码 改成 #if 1 即可
一般作为试探性代码
|
还有一个原因,/**/不能嵌套,所以如果代码中已经有/**/就会出错
1、正确
#if 0
...
/* ... */
...
#endif
2、错误
/*
...
/* ... */
...
*/
|
#if 0
#endif
相当于块注释
#endif
相当于块注释