打印

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

[复制链接]
1884|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

粉丝