看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《xxxx9659 (嘎嘎嘎嘎嘎)》之銘言: : 程式常常寫錯,為了比較好 debug : 所以編譯的時候會對 gcc 下 -Wall 跟 -Werror 參數 : 對於一些我覺得不太重要的 warning 不知道怎麼關掉 : 例如,我想要把這兩個 warning 關掉 : void fn1(){ : int a = 1; : (a == 10) && printf("a 等於 10\n"); : // warning: value computed is not used : } : void fn2(){ : int a; : // 這個程式還沒開始寫,只是先寫出架構 : // warning: unused variable 'a' : } : 上網查到這樣可以關 : #pragma warning(push) : #pragma warning(disable : warning id ) : //程式... : #pragma warning(pop) : 但是我不知道這兩個 warning 的 id 是多少 : 請問 warning id 有表可以查嗎? 我個人比較建議明確的在程式裡標明「這個狀況」不要顯示警告 而不是一股腦把所有這種警告都關掉 這些警告的存在是有意義的, 如果你哪天真的寫錯也是要靠它們 這類警告其實也很好繞過 有很多函式庫都會提供類似的東西 例如 Qt 就有 #define Q_UNUSED(arg) (void)(arg) 這樣你上面的只要多寫一行 Q_UNUSED(a) 就可以避免掉警告 另一個...雖然我知道這樣比較快不過寫成 if clause 還是比較好吧 不然其實 Q_UNUSED((a == 10) && printf("a 等於 10\n")); 這樣也行 -- 作者 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: 220.133.47.18 ※ 編輯: uranusjr 來自: 220.133.47.18 (03/14 12:42)
damody:推簽名檔~ 03/14 12:53
shadow0326:簽名檔也太好笑 XDD 03/14 13:03
diabloevagto:簽名檔! 03/14 13:40
xxxx9659:謝謝回答!!用 UNUSED( ) 是個好方法 03/14 14:42
xxxx9659:可是之前有遇過用了 UNUSED() 還是沒辦法抑制 warning 03/14 14:55
xxxx9659:不知道是不是編譯器太強知道 UNUSED( ) 是在作無效的動作 03/14 14:57
damody:回樓上,應該是警告的東西不同 03/14 20:54
damody:unused 是用在 傳入參數未使用的狀態 03/14 20:55