自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

項(xiàng)目中大量使用do{...} while(0U)的作用和意義

開(kāi)發(fā) 后端
do{...} while(0U) 這種代碼,在我們學(xué)習(xí)的時(shí)候可能很少見(jiàn),但實(shí)際項(xiàng)目中卻存在很多類似代碼。今天就來(lái)講講關(guān)于 do{...} while(0U) 的內(nèi)容。

在一些項(xiàng)目中,我們可能看到過(guò)很多,在學(xué)習(xí)的時(shí)候沒(méi)有見(jiàn)過(guò)的代碼,比如 do{...} while(0U) 這種代碼,在我們學(xué)習(xí)的時(shí)候可能很少見(jiàn),但實(shí)際項(xiàng)目中卻存在很多類似代碼。

今天就來(lái)講講關(guān)于 do{...} while(0U) 的內(nèi)容。

1. 前言

很多初學(xué)者都不知道這個(gè)“do{...} while(0U)”作用和意義,甚至覺(jué)得這樣寫(xiě)的代碼復(fù)雜且沒(méi)意義。

相信使用過(guò)STM32Cube HAL庫(kù)的朋友都知道,源碼里面有許多do{...} while(0U)的宏定義語(yǔ)句。

今天講的主要知識(shí)點(diǎn)是:HAL庫(kù)中do{...} while(0U)作用和意義。

當(dāng)然,do{...} while(0U) 不限于HAL庫(kù)中,適用于很多地方。

2. HAL庫(kù)中do{} while(0U)宏定義

在HAL庫(kù)中,很多.h文件都有do{...} while(0U)這樣的宏定義,比如:在stm32f1xx_hal_rcc.h中,使能GPIO時(shí)鐘:

對(duì)比在LL庫(kù)中時(shí)鐘使能代碼,如下:

很多人只會(huì)覺(jué)得LL庫(kù)這種函數(shù)比較合理,而想不明白為什么HAL會(huì)使用這種“do{...} while(0U)”宏定義的語(yǔ)句。

下一章節(jié)重點(diǎn)講述一下這種“do{...} while(0U)”宏定義的作用和意義。

3. do{...} while(0U)宏定義的作用和意義

使用do{...} while(0U)這種方式其實(shí)有幾種重要作用,下面簡(jiǎn)單說(shuō)幾條:

(1)編譯出錯(cuò)

不使用do{}while:

使用大括號(hào),多一個(gè)分號(hào):

使用do{...} while(0U):

大家對(duì)比以上幾種,你覺(jué)得哪一種合理?

(2)避免goto跳轉(zhuǎn)語(yǔ)句帶來(lái)問(wèn)題

不使用do{}hwile(0):

使用do{}hwile(0):

大家再對(duì)比以上兩種,發(fā)現(xiàn)了什么問(wèn)題?

我這里也不再繼續(xù)舉例說(shuō)明了,大家可以上網(wǎng)了解,其實(shí)還有很多重要意義和作用。

怎么說(shuō)呢,點(diǎn)到為止,希望對(duì)你有啟發(fā)。 

 

責(zé)任編輯:龐桂玉 來(lái)源: C語(yǔ)言與C++編程
相關(guān)推薦

2024-02-26 12:13:32

C++開(kāi)發(fā)編程

2020-07-08 16:10:42

do{}while(0代碼語(yǔ)言

2022-10-28 07:38:06

Javawhile循環(huán)

2019-03-25 10:30:19

開(kāi)發(fā)技能代碼

2009-06-24 17:34:58

使用JSF的經(jīng)驗(yàn)

2021-11-01 11:39:51

物聯(lián)網(wǎng)大數(shù)據(jù)分析IoT

2020-10-27 14:15:42

SpringBoot

2020-07-23 08:18:27

C語(yǔ)言執(zhí)行循環(huán)體條件

2009-06-29 15:51:48

Spring容器

2011-09-05 14:26:43

PhoneGap插件

2020-11-17 09:46:27

物聯(lián)網(wǎng)

2022-03-08 06:31:41

DebugRelease

2023-11-12 23:14:05

函數(shù)C 語(yǔ)言

2022-01-17 21:08:54

Python 循環(huán)結(jié)構(gòu)

2023-10-27 10:16:17

前端項(xiàng)目Rust

2018-05-02 09:18:17

Linux技巧嵌入式

2021-08-10 08:43:16

蓄電池UPS供電系統(tǒng)

2013-11-27 16:32:51

宕機(jī)kswapd0CPU

2023-04-21 10:08:00

版本工具依賴關(guān)系

2022-08-29 10:52:37

線程函數(shù)操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)