头文件重复定义的问题。

沤江一流 2012-12-31 11:33:36
多个.c文件包含一个.h文件。
.h里面有定义变量。
.h 用了
#ifndef
#define
#endif.
。现在怎么解决重复定义的问题?
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfvmario 2012-12-31
  • 打赏
  • 举报
回复
引用 5 楼 mounty_fsc 的回复:
引用 3 楼 cfvmario 的回复: 例如这样 sample.h C/C++ code?1234#ifndef __SAMPLE_H_#define __SAMPLE_H_extern int a;#endif sample.c C/C++ code?1int a=0; 如果在头文件里面定义的是函数呢?
只写原型,实现扔到.c里 sample.h

#ifndef __SAMPLE_H_
#define __SAMPLE_H_
int func(int a);
#endif
sample.c

#include "sample.h"
int func(int a)
{
  return a+1;
}
ouziwen120624 2012-12-31
  • 打赏
  • 举报
回复
引用 2 楼 cfvmario 的回复:
.h里不要放定义,只放声明,再搞个对应的.c去定义
++ 头文件中用extern
沤江一流 2012-12-31
  • 打赏
  • 举报
回复
引用 3 楼 cfvmario 的回复:
例如这样 sample.h C/C++ code?1234#ifndef __SAMPLE_H_#define __SAMPLE_H_extern int a;#endif sample.c C/C++ code?1int a=0;
如果在头文件里面定义的是函数呢?
mymtom 2012-12-31
  • 打赏
  • 举报
回复
来晚了,楼上的说完了!
cfvmario 2012-12-31
  • 打赏
  • 举报
回复
例如这样 sample.h

#ifndef __SAMPLE_H_
#define __SAMPLE_H_
extern int a;
#endif
sample.c

int a=0;
cfvmario 2012-12-31
  • 打赏
  • 举报
回复
.h里不要放定义,只放声明,再搞个对应的.c去定义
xxb249 2012-12-31
  • 打赏
  • 举报
回复
代码呢??贴出来

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧