日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
項(xiàng)目中大量使用do{...} while(0U)的作用和意義

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

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

1. 前言

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

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

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

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

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

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

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

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

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

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

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

(1)編譯出錯(cuò)

不使用do{}while:

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

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

大家對比以上幾種,你覺得哪一種合理?

(2)避免goto跳轉(zhuǎn)語句帶來問題

不使用do{}hwile(0):

使用do{}hwile(0):

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

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

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


新聞標(biāo)題:項(xiàng)目中大量使用do{...} while(0U)的作用和意義
路徑分享:http://www.5511xx.com/article/cooiohg.html