OpenEdv-开源电子网

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

定义结构体变量的位置?

[复制链接]

55

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2018-3-12
在线时间
53 小时
发表于 2018-10-11 10:43:55 | 显示全部楼层 |阅读模式
1金钱
问个小问题如图, 嗯哼.PNG
截取的是原子哥的输入捕获实验定时器5的配置哪个函数,打开发现有一个定义的结构体在函数外面,但是编译没有错误;
请问这种写法有实质性的问题吗?还是仅仅是书写的不规范?

最佳答案

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

函数外部定义则是全局变量,自定义处位置以下都可以引用
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2018-10-11 10:43:56 | 显示全部楼层
函数外部定义则是全局变量,自定义处位置以下都可以引用
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4307
金钱
4307
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-10-11 13:00:02 | 显示全部楼层
没有问题的,是可以的
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

55

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2018-3-12
在线时间
53 小时
 楼主| 发表于 2018-10-11 15:02:26 | 显示全部楼层
1208 发表于 2018-10-11 13:00
没有问题的,是可以的

你的意思放函数里面和放函数外面没有区别?
回复

使用道具 举报

55

主题

151

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2018-3-12
在线时间
53 小时
 楼主| 发表于 2018-10-11 15:03:36 | 显示全部楼层
d1z1y2 发表于 2018-10-11 12:13
函数外部定义则是全局变量,自定义处位置以下都可以引用

你说的是定义变量,我这是定义的结构体,请问都一样吗?
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4307
金钱
4307
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-10-11 16:11:43 | 显示全部楼层
蓝野先生 发表于 2018-10-11 15:02
你的意思放函数里面和放函数外面没有区别?

是的,最好放里面
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

1

主题

13

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-10-9
在线时间
3 小时
发表于 2018-10-11 16:43:55 | 显示全部楼层
放在外面相当于全局变量,放在内部相当于局部变量。这个变量的位置只要放在使用它之前定义就不会有语法错误。
回复

使用道具 举报

3

主题

808

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3888
金钱
3888
注册时间
2017-3-7
在线时间
1694 小时
发表于 2018-10-11 19:17:46 | 显示全部楼层
结构体差不多就是一种类型,和int什么的没有本质的区别,所以按照普通变量定义规则理解就好了
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-10-11 20:00:42 | 显示全部楼层
本帖最后由 edmund1234 于 2018-10-11 20:04 编辑

这种结构体一般放函数内, 用完即弃, 除非你要经常改动的外设
比如,你经常要打开或关闭某IO的上拉, 那就把结构体放外面(全局), 这样你的代码在某何一个地方都可以调用此结构体, 把上拉打开或关闭,再Gpio_init() 就不用重新定义整个结构体。任何方法都有其优点缺点, 这样的全局结构休体, 优点是快, 不需要重新定义结构体, 再一项一项的填写, 缺点是占内存。

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 18:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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