看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《uranusjr (←這人是超級笨蛋)》之銘言: : 例如 Qt 就有 : #define Q_UNUSED(arg) (void)(arg)
xxxx9659:可是之前有遇過用了 UNUSED() 還是沒辦法抑制 warning 03/14 14:55
xxxx9659:不知道是不是編譯器太強知道 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
akasan:valgrind, 但 windowns 版的沒試過XD 11/02 00:43
akasan:linux 上那真的是不二選擇了 11/02 00:44
Linux:我是用 Windows ....>"< 11/02 00:45
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146 ※ 編輯: uranusjr 來自: 114.32.81.146 (03/15 00:30)
xxxx9659:#define Q_UNUSED(x) (void)x; //這個真的沒看過... 03/15 00:55
xxxx9659:到底是什麼人會去想到,要把一個東西轉成 void 型態!!?? 03/15 00:56
tinlans:轉 void 避 warning 是古早時期的書就在教的 03/15 04:08
tinlans:當時是用來應付有傳回值但你沒檢查傳回值的函式 03/15 04:09