C99结构体字面量用于STM32的GPIO_Init()

2019-12-18 18:51发布

以前看到STM32的GPIO初始化一般写成下面这样:
  1. GPIO_InitTypeDef GPIO_InitStructure;

  2. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;                       
  3. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  4. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  5. GPIO_Init(GPIOC, &GPIO_InitStructure);
复制代码

感觉这么写有点儿繁琐,,
今天突然想到可以用C99中新添加的结构体字面量写成下面这样:
  1. GPIO_Init(GPIOC, &(GPIO_InitTypeDef){GPIO_Pin_0, GPIO_Speed_50MHz, GPIO_Mode_Out_PP});
复制代码

这种写法比较适合成员比较少的结构体,,写起来更简洁



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
way2888
1楼-- · 2019-12-19 15:57
本帖最后由 way2888 于 2018-5-1 18:14 编辑

我之前发的io设置应该是最简单的
https://www.amobbs.com/thread-5671113-1-1.html
zhugean
2楼-- · 2019-12-19 18:28
程序少了几行,可读性(可能)变差
mypc16888
3楼-- · 2019-12-19 21:40
不错,感谢分享
sarjet@qq.com
4楼-- · 2019-12-19 22:34
 精彩回答 2  元偷偷看……
bobo89
5楼-- · 2019-12-20 03:49
还是上面的方法可读性更好些!

一周热门 更多>