作者:吴建凰 wjh_2010@163.com
如需转载请声明出处:http://write.blog.csdn.net/postlist
最近写代码遇到这样的麻烦事,文件A中需要多次保护文件B,如下:
#ifdef MFH_DLL_DEF
#undef MFH_DLL_DEF
#endif
#define MFH_DLL_DEF MFH_DLL_FUN_TYPE
#include "B.h" //一处
///
//导出函数声明
#ifdef MFH_DLL_DEF
#undef MFH_DLL_DEF
#endif
#define MFH_DLL_DEF MFH_DLL_FUN_DEC
#include "B.h" //二处
上面举例中两次包含了B.h,这样就会出现两个头文件A.h和B.h,但我又想只用一个头文件,B.h的内容只写一遍,以便B.h内容的修改。
如何修改呢?C/C++的强大条件编译给我们提供了条件,如下定义即可解决该类问题。
#ifdef MFH_CONFIGFS_FUN
B.h的内容
#endif
#ifndef MFH_CONFIGFS_H
#define MFH_CONFIGFS_H
#define MFH_CONFIGFS_FUN
A.h的内容
#endif
以上宏定义看懂了没,希望对你有帮助。