头文件与源文件,求解惑!

[复制链接]
2650|2
 楼主| st316 发表于 2012-5-2 16:46 | 显示全部楼层 |阅读模式
假设有三个头文件,s1.c, s2.c和s3.c分别对应了三个头文件s1.h, s2.h, s3.h
这三个源文件分别 include 了三个对应的头文件。

现在,我希望在s1.c和s2.c里面使用在s3.h里面定义的变量,
于是,我在s1.c 与 s2.c 里面,把s3.h给 include 了进来。

可是Keil编译始终通不过,提示这个变量多次定义了。
我把原本在s3.h里面定义的变量,放在了 s3.c里面去定义,问题就解决了。

为什么啊?
求解惑!
ayb_ice 发表于 2012-5-2 16:57 | 显示全部楼层
很明显是重复定了
解决
1:不在头文件中定义变量(在C文件定义),只在头文件中声明变量
2:使用预处理
建议你用1
 楼主| st316 发表于 2012-5-2 17:01 | 显示全部楼层
我在每个头文件里面都加了防止重复编译的。

#ifndef __S1_H__
#define __S1_H__

unsigned char s1;

#endif
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

167

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部