罗贵波为什么没有军衔:关于C语言的条件编译

来源:百度文库 编辑:中科新闻网 时间:2024/05/02 12:46:14
请详细解释一下,为什么要使用条件编译,条件编译个作用是什么?
#ifdef 标识符
程序段1
#else
程序段2
#endif
请解释的尽量详细,谢谢

作用一:编译生成的可执行代码或者只包含程序段1 或者只包含程序段2 ,可执行程序大小会变小;
作用二:可以灵活的通过宏定义标识符实现同一函数的不同版本,例如
#ifdef 标识符
func1(...) {...}
#else
func1(...) {...}
#endif
这样func1函数通过宏定义可以有不同的实现

其用法类似于if else语句;

当“#ifdef ID”中的标识符在前边已经定义过(如#define ID),那么执行“程序段1”,否则执行“程序段2”;

借此可以控制程序的版本。比如,同一段程序有两个版本,分别使用程序段1和程序段2,就可以通过是否在你给的这段代码前边加上#define ID语句来告诉编译器你需要哪段程序。

在大型程序中,通常需要加载多个模块。利用这种表达方法可以使模块的选择更方便,只改动几行即可。

# ifdef 标识符
程序段1
#else
程序段2
#endif
起作用是:当标识符已被定义过(一般用#命令定义),则对程序段1进行编译,否则编译程序段2。


#if 0
...
#endif
还可以注释掉大段的代码

/*...*/不能注释掉本身包含*/的代码(/**/不能嵌套)