OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4741|回复: 4

全局变量。。。。。

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2013-5-20
在线时间
0 小时
发表于 2013-5-20 14:34:51 | 显示全部楼层 |阅读模式

keil 在main.c里定义了全局变量 u8 com; 当在led.c(这里只是打个比方)里引用com时总是有错误。。提示:

?..\SYSTEM\usart\usart.c(58): error:  #20: identifier "Com" is undefined

以前在main.c里定义了全局变量,再当前工程的其他文件里,肯定是能用的。。这次为什么总是报错呢。。。。。求解。。

asdfasdfadsfads
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

233

主题

961

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1816
金钱
1816
注册时间
2011-10-9
在线时间
230 小时
发表于 2013-5-20 15:07:45 | 显示全部楼层
我习惯在工程里面 有 sys.h

然后全部  文件都 include sys.h

如果需要共享的函数 或者数组 或者变量 

就 在sys.h 里面

extern 

例如 extern u32 com;
extern void test(void);
extern u8 buf[32]; 










回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-5-20 15:36:43 | 显示全部楼层
必须 要 外部声明


extern u8 Com;
回复 支持 反对

使用道具 举报

6

主题

153

帖子

0

精华

初级会员

Rank: 2

积分
197
金钱
197
注册时间
2013-4-4
在线时间
0 小时
发表于 2013-5-20 16:08:44 | 显示全部楼层
2楼说的对,需要加extern 否则编译器不知道该在哪里搜索global var
~~~~ 欢迎讨论,拒绝谩骂 ~~~~
回复 支持 反对

使用道具 举报

51

主题

1455

帖子

3

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2613
金钱
2613
注册时间
2011-1-25
在线时间
176 小时
发表于 2013-5-20 16:44:13 | 显示全部楼层
你需要声明该变量为外来变量,编译器才会去别的文件里面找。
extern,C没学好。
一直努力就很好。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-19 14:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表