给你下面三个示例文件:kbi.h, kbi.c, other.c
kbi.h
- #ifndef __KBI_H_
- #define __KBI_H_
- #ifdef __KBI_C_
- #define KBI_EXT
- #else
- #define KBI_EXT extern
- #endif
- KBI_EXT int a;
- KBI_EXT int b;
- KBI_EXT int c;
- #endif /* __KBI_H_ */
kbi.c
- #define __KBI_C_
- #include "kbi.h"
- int get_a(void){
- return a;
- }
other.c
- #include "kbi.h"
- int use_c(void){
- return c;
- }
解释:
由于kbi.h是公共头文件,可以在多个C文件中用include包含。有了KBI_EXT这样的定义,就可以保证只在一个C文件(这里举例的是kbi.c)定义变量,而在其它C文件中只是引用。这样即方便变量的管理又可以避免重定义错误。