条件编译

对于如下情况:有多个源文件(.c 或.cpp),都引用了同一个头文件,为了防止出现重复定义的情况,我们经常需要使用条件编译。

参考:http://baike.baidu.com/view/1617265.htm

Tips:

在c语言中,对同一个变量或者函数进行多次声明是不会报错的。所以如果h文件里只是进行了声明工作,即使不使用# ifndef宏定义,多个c文件包含同一个h文件也不会报错。但是在c++语言中,#ifndef的作用域只是在单个文件中。所以如果h文件里定义了全局变量,即使采用#ifndef宏定义,一个c文件包含同一个h文件多次还是会出现全局变量重定义的错误。

使用#ifndef可以避免下面这种错误:如果在h文件中定义了全局变量,一个c文件包含同一个h文件多次,如果不加#ifndef宏定义,会出现变量重复定义的错误;如果加了#ifndef,则不会出现这种错误。
 
通常在头文件中,我们只定义函数的原型,而不给出函数的具体实现。
posted @ 2012-06-16 20:53  菜鸟的世界  阅读(237)  评论(0编辑  收藏  举报