注意,明星公眾號(hào),是的,令人興奮的內(nèi)容作者:stronguang黃微信公眾號(hào):stronghuang黃1社論許多初學(xué)者都不知道“在(0U)時(shí)做{...}”。
作用和意義,編寫甚至認(rèn)為代碼是復(fù)雜且毫無(wú)意義的。
我相信使用STM32Cube HAL庫(kù)的朋友知道在源代碼中有很多do {...} while(0U)宏定義語(yǔ)句。
我今天談?wù)摰闹饕R(shí)點(diǎn)是:HAL庫(kù)中do {...} while(0U)的作用和含義。
當(dāng)然,{0U}不限于HAL庫(kù),它適用于許多地方。
2 HAL庫(kù)中的do {} while(0U)宏在HAL庫(kù)中定義。
許多.h文件具有do {...} while(0U)宏定義,例如:在stm32f1xx_hal_rcc.h中,啟用GPIO時(shí)鐘:比較LL庫(kù)中的時(shí)鐘啟用代碼,如下所示:許多人只認(rèn)為這LL庫(kù)的功能更合理,但不理解為什么HAL使用此“ do {...} while(0U)”功能。
宏定義聲明。
下一章重點(diǎn)介紹此“ do {...} while(0U)”函數(shù)的功能和含義。
宏定義。
3do {...} while(0U)宏定義功能和含義這種方式使用do {...} while(0U)實(shí)際上具有幾個(gè)重要功能,以下是一些簡(jiǎn)要功能:1.編譯錯(cuò)誤時(shí)不要使用do { }同時(shí):使用花括號(hào),再加上一個(gè)分號(hào):使用do {...} while(0U):比較上述內(nèi)容,您認(rèn)為哪一個(gè)是合理的? 2.避免由goto jump語(yǔ)句引起的問(wèn)題。
不要使用do {} hwile(0):使用do {} hwile(0):讓我們比較上面兩個(gè),發(fā)現(xiàn)有什么問(wèn)題嗎?我在這里不再繼續(xù)舉例。
您可以在Internet上找到。
實(shí)際上,仍然有許多重要的意義和功能。
怎么說(shuō),到最后,希望對(duì)您有所啟發(fā)。
推薦讀物:您設(shè)置了多少M(fèi)CU堆棧空間?為什么不建議使用DS-5開發(fā)STM32? FreeRTOS如何減少RAM空間并加快執(zhí)行速度。
關(guān)注微信公眾號(hào)“ strongerHuang”,回復(fù)“ 1024”。
在后臺(tái)查看更多內(nèi)容,請(qǐng)?jiān)凇鞍凑找?guī)定加入技術(shù)交流小組。
長(zhǎng)按以跟隨圖片中包含的官方帳戶。
免責(zé)聲明:本文內(nèi)容經(jīng)21ic授權(quán)后發(fā)布,版權(quán)歸原作者所有。
該平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
本文僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)的立場(chǎng),如有任何疑問(wèn),請(qǐng)與我們聯(lián)系,謝謝!