关注+星标公众号,不错过精彩内容
作者 | strongerHuang
微信公众号 | 嵌入式专栏
在一些项目中,我们可能看到过很多,在学习的时候没有见过的代码,比如 do{...} while(0U) 这种代码,在我们学习的时候可能很少见,但实际项目中却存在很多类似代码。
今天就来讲讲关于 do{...} while(0U) 的内容。
1
前言很多初学者都不知道这个“do{...} while(0U)”作用和意义,甚至觉得这样写的代码复杂且没意义。
2
HAL库中do{} while(0U)宏定义在HAL库中,很多.h文件都有do{...} while(0U)这样的宏定义,比如:在stm32f1xx_hal_rcc.h中,使能GPIO时钟:
对比在LL库中时钟使能代码,如下:
3
do{...} while(0U)宏定义的作用和意义使用do{...} while(0U)这种方式其实有几种重要作用,下面简单说几条:
1.编译出错
不使用do{}while:
使用大括号,多一个分号:
使用do{...} while(0U):
大家对比以上几种,你觉得哪一种合理?
2.避免goto跳转语句带来问题
不使用do{}hwile(0):
使用do{}hwile(0):
大家再对比以上两种,发现了什么问题?
我这里也不再继续举例说明了,大家可以上网了解,其实还有很多重要意义和作用。
怎么说呢,点到为止,希望对你有启发。
后台回复『嵌入式C语言』『嵌入式软件设计与开发』阅读更多相关文章。
点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。