博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

multiple definition of 重复定义

Posted on 2014-11-11 10:50  bw_0927  阅读(331)  评论(0)    收藏  举报

头文件x.h中只能包含变量声明和函数声明

不能含有任何变量的定义或函数的定义,否则当该头文件x.h被多处include时产生不同的对象文件a.o和b.o时不会出错,

但当连接器链接a.o和b.o来产生exe是会出现multiple definition of 重复定义的问题

 

所有头文件里添加#ifndef宏,并不能解决该问题

#ifndef _INCLUDE_NTREG_H
#define _INCLUDE_NTREG_H 
只能保证在一个源文件中不会重复多次引用。
 
 
  • 头文件.h中不适宜定义变量,我们都知道定义全局变量的常规使用方法是在.cpp文件中定义变量,在.h文件中用extern申明
  • 在头文件的函数定义前加上inline也可解决问题