Thursday, July 13, 2017
C/C++中避免unused variable造成報錯的方法(void cast of argc/argv)
一些Signal handler或是Thread(CMSIS-RTOS)的建立會要求你的的函數強制吃一些argument。
當你的compiler開 -Werror -Wall -Wunused-variable選項時,這些未被使用的變數會報錯。
這時有兩個解法。
1.void cast
例如:
void f(void * argc)
{
(void) argc;
}
這會無害的去用到這個變數。
2.自己等於自己
例如:
void f(void * argc)
{
argc = argc;
}
這兩招就是欺騙compiler這些變數已經被使用。
我第一次看到這寫法真的嚇到了。
以下是stackoverflow的討論。
https://stackoverflow.com/questions/21045615/what-does-voidvar-actually-do
https://stackoverflow.com/questions/8052091/void-cast-of-argc-and-argv?rq=1
Subscribe to:
Post Comments (Atom)
精選文章
使用Ardunio Atmega2560 連接 nRF24L01+
使用Ardunio Atmega2560 連接 nRF24L01+ 關於library 目前主流有 https://github.com/maniacbug/RF24 與 https://github.com/TMRh20/RF24 這兩個。 其中TMRh20大大做...
- 
PWM簡述 PWM為Pulse Width Modulation的縮寫,對於只有high和low的數位訊號來說,如何用high,low比率調整出類似類比訊號為PWM的用處,另外大多數馬達也透過PWM來驅動轉速,LED由於只吃固定電壓,所以常用PWM來調整亮度。 du...
 - 
John Murphy:異軍突起的電影配樂家 首先先貼他的個人網站 http://johnmurphyofficial.com/ 。 本文的音樂都在這: http://www.johnmurphyofficial.com/tunesbox_1.html 他最有名...
 - 
簡介 libpqxx是postgrsql 官方所推出的函式庫,基本上包裝得很好,用起來十分簡便。 libpqxx官網: http://pqxx.org/ linux上安裝方式 請先安裝postgresql,方便起見可安裝php,phppgadmin和ap...
 
No comments:
Post a Comment