關(guān)鍵字:STM32CubeIDE,warning,編譯警告
目錄預(yù)覽
1 前言2 巧用 warning3 小結(jié)
1. 前言
編譯警告對(duì)于工程師們來(lái)說(shuō),是再常見(jiàn)不過(guò)的東西了。對(duì)于嚴(yán)謹(jǐn)?shù)墓こ處焸?,任?warning 都是不會(huì)忽視的。
2. 巧妙使用 warning
在 STM32CubeIDE 中可以通過(guò)warning(甚至 error)的方式來(lái)通知工程師,使得一些容易遺漏的配置得到重視。
例如,在釋放參考代碼給客戶時(shí),希望客戶注意到里面的項(xiàng)目名稱和項(xiàng)目版本,那么我們可以在代碼中,通過(guò)“#error ”來(lái)強(qiáng)調(diào)必須要修改的信息,通過(guò)“#warning”來(lái)備注需要注意的信息。具體代碼如圖 1:
這樣,當(dāng)客戶編譯工程時(shí),會(huì)出現(xiàn) error 和 warning,見(jiàn)圖 2,只有將“#error”和“#warning”兩行分別注釋掉,才會(huì)分別消除這兩項(xiàng)編譯信息,以此達(dá)到警示客戶的目的。
2.1. 主動(dòng)屏蔽特定的 warning
在有些場(chǎng)景,我們還可以在特定的代碼或者文件作用域內(nèi),主動(dòng)屏蔽特定的warning。
例如,工程中寫了一個(gè)測(cè)試函數(shù)“void MyTestFunction(void)”,但是在工程中暫時(shí)沒(méi)有被調(diào)用,直接編譯會(huì)得到“Wunused-function”的 warning。
但是如果在代碼中添加這樣的語(yǔ)句:
#pragma GCC diagnostic ignored "-Wunused-function"。
/*此區(qū)間內(nèi),如果出現(xiàn)函數(shù)僅申明,但是沒(méi)有被調(diào)用時(shí),編譯不產(chǎn)生warning*/voidMyTestFunction(void){…}#pragma GCC diagnostic pop
因?yàn)槲覀兣渲昧恕?Wunused-function”,那么在編譯時(shí),即使 MyTestFunction 沒(méi)有被調(diào)用,編譯也不產(chǎn)生 warning。
我們還可以在 STM32CubeIDE 中,通過(guò)“Help”->“Information Center”->“Read STM32CubeIDE Documentation”->“C/C++ Compiler”,找到 GCC 編譯器文檔,從而發(fā)現(xiàn)更多的 warning 選項(xiàng),根據(jù)需要主動(dòng)屏蔽更多的 warning。見(jiàn)圖 3 :
3. 小結(jié)
事實(shí)上,在編譯項(xiàng)目時(shí),warning 和 error 同樣重要,部分隱蔽的問(wèn)題可能就和warning 相關(guān)。當(dāng)我們對(duì)工程代碼和編譯器有了更深層次的了解后,可以巧妙地使用和屏蔽 warning,幫我們更好地管理項(xiàng)目。
完整內(nèi)容請(qǐng)點(diǎn)擊“閱讀原文”下載原文檔。
長(zhǎng)按掃碼關(guān)注公眾號(hào)
更多資訊,盡在STM32
▽點(diǎn)擊“閱讀原文”,可下載原文檔
原文標(biāo)題:應(yīng)用筆記|巧用 STM32CubeIDE 之編譯警告
文章出處:【微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44569瀏覽量
636128 -
STM32
+關(guān)注
關(guān)注
2270文章
10905瀏覽量
356449
原文標(biāo)題:應(yīng)用筆記|巧用 STM32CubeIDE 之編譯警告
文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論