Re: [問題] 編譯器 關掉特定 warning

看板C_and_CPP作者 (←這人是超級笨蛋)時間11年前 (2013/03/15 00:29), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串5/5 (看更多)
※ 引述《uranusjr (←這人是超級笨蛋)》之銘言: : 例如 Qt 就有 : #define Q_UNUSED(arg) (void)(arg)

03/14 14:55,
可是之前有遇過用了 UNUSED() 還是沒辦法抑制 warning
03/14 14:55

03/14 14:57,
不知道是不是編譯器太強知道 UNUSED( ) 是在作無效的動作
03/14 14:57
補充一下 我寫之前那篇文的時候在公司所以其實是隨意寫的 以下是真正的 Q_UNUSED 定義 (from Qt 4.8.2) #if defined(Q_CC_INTEL) && !defined(Q_OS_WIN) || defined(Q_CC_RVCT) template <typename T> inline void qUnused(T &x) { (void)x; } # define Q_UNUSED(x) qUnused(x); #else # define Q_UNUSED(x) (void)x; #endif 在非 Windows 的 Intel 機器上其實 Q_UNUSED 是一個 inline function template 這樣確實是比較好 不過不知道為什麼 fallback 定義是 (void)x 至少應該像我一樣加個括弧吧... -- 作者 Linux (Windows) 看板 C_and_CPP 標題 [問題] 如何確認是否 free 對記憶體 時間 Fri Nov 2 00:14:03 2012

11/02 00:43,
valgrind, 但 windowns 版的沒試過XD
11/02 00:43

11/02 00:44,
linux 上那真的是不二選擇了
11/02 00:44

11/02 00:45,
我是用 Windows ....>"<
11/02 00:45
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146 ※ 編輯: uranusjr 來自: 114.32.81.146 (03/15 00:30)

03/15 00:55, , 1F
#define Q_UNUSED(x) (void)x; //這個真的沒看過...
03/15 00:55, 1F

03/15 00:56, , 2F
到底是什麼人會去想到,要把一個東西轉成 void 型態!!??
03/15 00:56, 2F

03/15 04:08, , 3F
轉 void 避 warning 是古早時期的書就在教的
03/15 04:08, 3F

03/15 04:09, , 4F
當時是用來應付有傳回值但你沒檢查傳回值的函式
03/15 04:09, 4F
文章代碼(AID): #1HGVi5_J (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1HGVi5_J (C_and_CPP)