打印

求助:如何在多个C文件中使用同一个全司变量

[复制链接]
3209|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
janly|  楼主 | 2008-12-1 11:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TE, TEST, ST, RS, sam
我想在多个C文件如:test1.c,test2.c,test3.c使用同一个变量unsigned char sample,我使用extern声明后,用keil c 编译会L1,L2的警告信息;附件是我举的一个测试样例;
你们是如何解决的呢?
相关链接:https://bbs.21ic.com/upfiles/img/200812/200812111555845.rar

相关帖子

沙发
janly|  楼主 | 2008-12-1 22:46 | 只看该作者

谢谢楼上的两位

我用的是第二种方法解决了;但我不太明白,为什么我在头文件用extern声明了一次,还得再用局部变量声明一次; 

使用特权

评论回复
板凳
zq1987731| | 2008-12-2 08:10 | 只看该作者

...

因为你在t2.c中是【定义】了那2个变量,头文件中用extern【声明】并不重复,就好比你的函数,在.c文件中写的时候:

void Fun(void)
{
    //..........
}

如果要声明为全局函数,是不是要在.h文件或开头处这么声明啊?
extern void Fun(void);

这不也出现了2次么?

使用特权

评论回复
地板
janly|  楼主 | 2008-12-2 16:14 | 只看该作者

谢谢各位帮忙,谢谢!

使用特权

评论回复
5
uppet| | 2008-12-3 14:38 | 只看该作者

用extern声明

并在其中一个.c模块中或者.lib中提供一个定义。。

使用特权

评论回复
6
耕在此行| | 2008-12-3 17:21 | 只看该作者

本人的做法

所有全局变量。位变量。数组变量。等等都定义成一个头文件。
然后再加一个相对应的头文件声明。
在主文件内包含这两个头文件。
其它文件包含声明的头文件。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

43

帖子

0

粉丝