c/c++头文件的双重保护
在large scale c++ software design 一书中提到, 在头文件中有必要使用"双重"防重复包含的宏,象这样:
#ifndef INCLUDE_XXX_H
#define INCLUDE_XXX_H
#ifndef INCLUDE_YYY_H
#include yyy.h
# endif
因为如果不这样做,冗余的包含会使得编译效率下降,并且作者还给出了使用CFRONT的实测结果,不过是基于CFRONT编译器的,但是在现代的大型项目中很少看到这样的双重ifndef语句,原因在于现代的编译器大多可以处理这种情况,会在内部优化掉,使得即使没有"双重"包含宏,也不会下降编译效率。
这里有很好的说明。
#ifndef INCLUDE_XXX_H
#define INCLUDE_XXX_H
#ifndef INCLUDE_YYY_H
#include yyy.h
# endif
因为如果不这样做,冗余的包含会使得编译效率下降,并且作者还给出了使用CFRONT的实测结果,不过是基于CFRONT编译器的,但是在现代的大型项目中很少看到这样的双重ifndef语句,原因在于现代的编译器大多可以处理这种情况,会在内部优化掉,使得即使没有"双重"包含宏,也不会下降编译效率。
这里有很好的说明。

0 Comments:
发表评论
<< Home