标题: 定义与声明 [打印本页]
作者: liuyang 时间: 2012-1-14 03:53
标题: 定义与声明
在头文件定义类型,常常会遇到编译时报,已在某个模块中定义了。
这其实是由于重复定义导致C++编译器无法通过编译,C编译器就能通过,因为它有重复定义机制。 文件在编译时会把每个源代码文件分别编译成对应的目标文件,其中会含有引入变量符号。头文件一般只存放声明。头文件只是把代码装入到源代码中然后编译的,如果你在.h里定义了变量将会导致多个引用其头文件的模块都定义了改变量,致使VC编译器报错。 所以一般在.h中用extern int i;只声明下,编译时就是一些外部引入变量符号,然后再某个.cpp中在具体定义。
或者用这个只就省了声明与定义分开写的麻烦。
假设cl.h 代码如下
#ifdefine MAIN_DEFINE
# define EXTERN //定义
#else
#define EXTERN extern //声明
#endif
在定义的.cpp中加载
#define MAIN_DEFINE
#incluade " cl.h"
在声明的.cpp中加载
#incluade " cl.h"
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |