1.前言
編譯警告對于工程師們來說,是再常見不過的東西了。對于嚴謹的工程師們,任何 warning 都是不會忽視的。
2.巧妙使用 warning
在 STM32CubeIDE 中可以通過warning(甚至 error)的方式來通知工程師,使得一些容易遺漏的配置得到重視。
例如,在釋放參考代碼給客戶時,希望客戶注意到里面的項目名稱和項目版本,那么我們可以在代碼中,通過“#error ”來強調必須要修改的信息,通過“#warning”來備注需要注意的信息。具體代碼如圖 1:
這樣,當客戶編譯工程時,會出現 error 和 warning,見圖 2,只有將“#error”和 “#warning”兩行分別注釋掉,才會分別消除這兩項編譯信息,以此達到警示客戶的目的。
2.1. 主動屏蔽特定的 warning
在有些場景,我們還可以在特定的代碼或者文件作用域內,主動屏蔽特定的 warning。
例如,工程中寫了一個測試函數“void MyTestFunction(void)”,但是在工程中暫時沒有被調用,直接編譯會得到“Wunused-function”的 warning。
但是如果在代碼中添加這樣的語句:
#pragma GCC diagnostic ignored "-Wunused-function"。
/*此區間內,如果出現函數僅申明,但是沒有被調用時,編譯不產生warning*/ voidMyTestFunction(void){…}
#pragma GCC diagnostic pop
因為我們配置了“-Wunused-function”,那么在編譯時,即使 MyTestFunction 沒有 被調用,編譯也不產生 warning。
我們還可以在 STM32CubeIDE 中,通過“Help”->“Information Center”->“Read STM32CubeIDE Documentation”->“C/C++ Compiler”,找到 GCC 編譯器文檔,從而發現更多的 warning 選項,根據需要主動屏蔽更多的 warning。見圖 3 :
3. 小結
事實上,在編譯項目時,warning 和 error 同樣重要,部分隱蔽的問題可能就和 warning 相關。當我們對工程代碼和編譯器有了更深層次的了解后,可以巧妙地使用和屏蔽 warning,幫我們更好地管理項目。
來源:STM32單片機
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理
審核編輯 黃宇
-
STM32
+關注
關注
2272文章
10923瀏覽量
357555 -
IDE
+關注
關注
0文章
341瀏覽量
46878 -
編譯
+關注
關注
0文章
661瀏覽量
33040
發布評論請先 登錄
相關推薦
STM32CubeIDE入門教程 STM32CubeIDE安裝使用教程
![<b class='flag-5'>STM32CubeIDE</b>入門教程 <b class='flag-5'>STM32CubeIDE</b>安裝使用教程](https://file.elecfans.com//web2/M00/46/F4/pYYBAGKXCM6AV5jGAAxPkBro6Ok723.png)
STM32CubeIDE SWV功能介紹
![<b class='flag-5'>STM32CubeIDE</b> SWV功能介紹](https://file.elecfans.com/web2/M00/17/A0/poYBAGFme7yALxotAAAhvjYHoH8415.png)
STM32CubeIDE使用
![<b class='flag-5'>STM32CubeIDE</b>使用](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32CubeIDE的MCU開發
![<b class='flag-5'>STM32CubeIDE</b>的MCU開發](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32CUBEIDE(1)----安裝
![<b class='flag-5'>STM32CUBEIDE</b>(1)----安裝](https://file.elecfans.com/web2/M00/7D/72/pYYBAGN8Kp-AcNXaAADcCR2hxBY834.jpg)
巧用編譯器之編譯警告
![<b class='flag-5'>巧用</b><b class='flag-5'>編譯</b>器<b class='flag-5'>之</b><b class='flag-5'>編譯</b><b class='flag-5'>警告</b>](https://file.elecfans.com/web2/M00/09/16/pYYBAGD0FvWAeWpFAAAb1Fux1oA753.jpg)
評論