91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

do{...} while(0U) 這種代碼的作用和意義

strongerHuang ? 來(lái)源:strongerHuang ? 作者:strongerHuang ? 2021-06-04 14:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在一些項(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í)鐘

65bcab4a-c4b8-11eb-9e57-12bb97331649.jpg

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

65c9c73a-c4b8-11eb-9e57-12bb97331649.jpg

很多人只會(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:

65d46a14-c4b8-11eb-9e57-12bb97331649.png

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

65ebcb14-c4b8-11eb-9e57-12bb97331649.jpg

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

65fc6e6a-c4b8-11eb-9e57-12bb97331649.jpg

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

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

不使用do{}hwile(0):

6606c112-c4b8-11eb-9e57-12bb97331649.jpg

使用do{}hwile(0):

6622dcbc-c4b8-11eb-9e57-12bb97331649.png

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

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

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

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64933
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70786
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1280

    瀏覽量

    54132
  • HAL
    HAL
    +關(guān)注

    關(guān)注

    2

    文章

    72

    瀏覽量

    13126

原文標(biāo)題:項(xiàng)目中大量使用do{...} while(0U)的作用和意義

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32U5 IWDG的提前喚醒中斷無(wú)法在STOP模式下觸發(fā)怎么解決?

    was resumed from stop 2 */ if(__HAL_PWR_GET_FLAG(PWR_FLAG_STOPF) == 0U) {} /* Clear stop flag
    發(fā)表于 04-27 08:05

    STM32U5 IWDG的提前喚醒中斷無(wú)法在STOP模式下觸發(fā)怎么解決?

    was resumed from stop 2 */ if(__HAL_PWR_GET_FLAG(PWR_FLAG_STOPF) == 0U) {} /* Clear stop flag
    發(fā)表于 04-24 07:50

    STM32U5 IWDG的提前喚醒中斷無(wú)法在STOP模式下觸發(fā)怎么解決?

    was resumed from stop 2 */ if(__HAL_PWR_GET_FLAG(PWR_FLAG_STOPF) == 0U) {} /* Clear stop flag
    發(fā)表于 04-22 08:14

    STM32H743程序啟動(dòng)卡在了while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U),怎么解決?

    使用了STM32H743的MCU,程序啟動(dòng)卡在了while(__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == 0U),外部低速時(shí)鐘用示波器測(cè)量可以正常起振,電容容值12pF。
    發(fā)表于 03-14 07:00

    在工業(yè)自動(dòng)化領(lǐng)域AI,AO,DI,DO是什么,它有什么作用

    通過(guò)合理使用 AI、AO、DI、DO,工業(yè)自動(dòng)化系統(tǒng)可以實(shí)現(xiàn)精確的監(jiān)測(cè)和控制,提高生產(chǎn)效率和安全性。
    的頭像 發(fā)表于 02-06 15:51 ?2231次閱讀
    在工業(yè)自動(dòng)化領(lǐng)域AI,AO,DI,<b class='flag-5'>DO</b>是什么,它有什么<b class='flag-5'>作用</b>

    javascript:void(0) 的作用是什么

    javascript:void(0) 在 HTML 和 JavaScript 中是一個(gè)常見(jiàn)的表達(dá)式,主要用來(lái)創(chuàng)建一個(gè)無(wú)操作的鏈接(通常是 標(biāo)簽)或者阻止默認(rèn)事件處理。具體來(lái)說(shuō),它的作用有以下幾點(diǎn)
    的頭像 發(fā)表于 12-31 15:55 ?2654次閱讀

    養(yǎng)成良好的編程習(xí)慣|堆內(nèi)存初值不一定是0

    );??? char ch; int i = 0; while ((ch = getchar()) != '') { *(s + i++) = ch; } printf("%s", s); return 0
    的頭像 發(fā)表于 12-18 09:14 ?382次閱讀

    DDC112U數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換結(jié)果一直是0,是什么原因?qū)е碌模?/a>

    _data&=0x0fffff; ddc112u_data=0; n=0; break; } } f=!f; GPIO_WriteBit(GPIOE,GPIO_Pin_11
    發(fā)表于 11-20 07:21

    物聯(lián)網(wǎng)中RTU的DO是什么?如何實(shí)現(xiàn)DO相關(guān)軟件功能?

    DO 即數(shù)字輸出(DO, Digital Output),用于輸出二進(jìn)制信號(hào),可以控制繼電器、燈光、電機(jī)啟停等。數(shù)字輸出同樣只能有兩種狀態(tài):高電平或低電平。
    的頭像 發(fā)表于 09-29 11:48 ?1444次閱讀
    物聯(lián)網(wǎng)中RTU的<b class='flag-5'>DO</b>是什么?如何實(shí)現(xiàn)<b class='flag-5'>DO</b>相關(guān)軟件功能?

    GD32F4xx_Demo_Suites里的PMU_Sleep_Wakeup如何從串口從deepsleep狀態(tài)喚醒?

    (EVAL_COM0_GPIO_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ,EVAL_COM0_RX_PIN); nvic_irq_enable(EXTI10_15_IRQn, 2U,
    發(fā)表于 09-27 06:33

    請(qǐng)問(wèn)平衡電阻只對(duì)雙極運(yùn)放有作用,對(duì)mos型的運(yùn)放意義不大?

    1.請(qǐng)問(wèn)平衡電阻只對(duì)雙極運(yùn)放有作用,對(duì)mos型的運(yùn)放意義不大?? 2.在深度負(fù)反饋條件下,失調(diào)在輸出端不明顯?? 謝謝
    發(fā)表于 09-23 06:34

    DO傳感器有什么作用

    在環(huán)境保護(hù)與水資源管理日益重要的今天,溶解氧作為評(píng)估水質(zhì)健康狀況的關(guān)鍵指標(biāo)之一,其準(zhǔn)確、快速的監(jiān)測(cè)對(duì)于保護(hù)水生態(tài)系統(tǒng)、預(yù)防水體污染及指導(dǎo)水處理工藝具有重要的價(jià)值。隨著科技的進(jìn)步,一種基于熒光法測(cè)量原理的DO傳感器正逐步成為水質(zhì)監(jiān)測(cè)領(lǐng)域的重要工具。
    的頭像 發(fā)表于 09-20 16:22 ?698次閱讀

    TIPD122設(shè)計(jì)中,U8的作用是什么?

    TIPD122設(shè)計(jì)中,U8的作用是什么?為什么Vin從U8的IN+引入?
    發(fā)表于 07-31 06:12

    使用PIC32MK多電機(jī)開(kāi)發(fā)板例程時(shí),用PICkit3將例程燒寫(xiě)進(jìn)去以后,會(huì)卡在ADC初始化是為什么?

    == 0U) // Wait until the reference voltage is ready { /* Nothing to do */ } 請(qǐng)問(wèn)這個(gè)是為什么呢?
    發(fā)表于 07-26 06:53

    PSOC 4200M看門狗計(jì)時(shí)器沒(méi)有重置,請(qǐng)問(wèn)問(wèn)題出在哪里?

    哪里? #include #include #define LED_ON (0u) #define LED_OFF (1u) // 全局變量 //uint8 ledState = LED_OFF
    發(fā)表于 07-22 08:26
    主站蜘蛛池模板: 亚洲第成色999久久网站 | 在线天堂网 | 午夜啪啪福利视频 | 久久精品国产福利国产琪琪 | 色噜噜亚洲精品中文字幕 | 国模极品一区二区三区 | 小泽玛利亚在线观看123 | 色中文网| 日本黄色免费 | 久久精品视频5 | 日本黄段视频 | 久久亚洲国产成人精品性色 | 亚洲综合春色另类久久 | 激情在线视频 | 三级视频网站 | 久久久久久久国产视频 | 天天干夜夜看 | 看黄视频免费 | 欧美综合精品一区二区三区 | 激情五月婷婷丁香 | 女人张开腿让男人做爽爽 | 免费看国产一级特黄aa大片 | 无内丝袜透明在线播放 | 欧美一级视频高清片 | 欧美久久天天综合香蕉伊 | 国模啪啪一区二区三区 | 色爱区综合激情五月综合色 | 免费观看视频在线 | 久久精品1 | 在线好吊色视频98gao | 欧美a区| 国产免费高清福利拍拍拍 | 亚洲一二三四 | www.毛片com | 色黄视频 | 欧洲精品码一区二区三区免费看 | 爽好舒服快受不了了老师 | 4虎影院最近地址 | 国产成人99久久亚洲综合精品 | 日韩欧美中文字幕在线播放 | 欧美爽爽爽爽爽爽视频 |