OpenEdv-开源电子网

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

extern的使用方法是什么啊?

[复制链接]

11

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2017-9-10
在线时间
80 小时
发表于 2017-9-25 23:10:22 | 显示全部楼层 |阅读模式
1金钱
我想在main函数中使用在usart.c文件中的Res变量,为什么我是用extern编译会出错啊?
QQ截图20170925230544.png QQ截图20170925230602.png QQ截图20170925230618.png
谢谢。

最佳答案

查看完整内容[请看2#楼]

u8 Res;不能是局部变量!把变量定义到函数外就可以。 extern正常是使用在头文件里,对模块函数提供给外部使用的函数或变量进行声明。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2017-9-25 23:10:23 | 显示全部楼层
u8 Res;不能是局部变量!把变量定义到函数外就可以。
extern正常是使用在头文件里,对模块函数提供给外部使用的函数或变量进行声明。
让我们的思维驾驭在电的速度之上!
回复

使用道具 举报

5

主题

266

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1526
金钱
1526
注册时间
2016-7-20
在线时间
155 小时
发表于 2017-9-26 09:20:54 | 显示全部楼层
在usart.c文件中将u8 res 定义为全局变量,然后在usart.h中直接extern u8 res就可以了。
我是可以什么都不说 ,但不可以什么都不做。
回复

使用道具 举报

11

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2017-9-10
在线时间
80 小时
 楼主| 发表于 2017-9-26 19:27:45 | 显示全部楼层
DongInker 发表于 2017-9-26 08:23
u8 Res;不能是局部变量!把变量定义到函数外就可以。
extern正常是使用在头文件里,对模块函数提供给外部 ...

可以了,谢谢大佬。
回复

使用道具 举报

11

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2017-9-10
在线时间
80 小时
 楼主| 发表于 2017-9-26 19:27:57 | 显示全部楼层
super910906 发表于 2017-9-26 09:20
在usart.c文件中将u8 res 定义为全局变量,然后在usart.h中直接extern u8 res就可以了。

可以了谢谢大佬。
回复

使用道具 举报

5

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2017-9-26
在线时间
25 小时
发表于 2017-9-27 09:37:23 | 显示全部楼层
局部变量只在函数内生效,把 Res 放到外面编程全局就行了。
回复

使用道具 举报

11

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2017-9-10
在线时间
80 小时
 楼主| 发表于 2017-9-28 09:47:34 | 显示全部楼层
青春梦飞翔 发表于 2017-9-27 09:37
局部变量只在函数内生效,把 Res 放到外面编程全局就行了。

好的,我调试成功了,谢谢。
回复

使用道具 举报

20

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
323
金钱
323
注册时间
2018-1-23
在线时间
40 小时
发表于 2018-3-30 14:51:08 | 显示全部楼层
extern 可以跨文件使用吧?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 17:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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