如何最好地消除有關未使用變量的警告?我有一個跨平臺應用程序,在我的一些函數中,并沒有使用傳遞給函數的所有值。因此我收到GCC的警告,告訴我有未使用的變量。編碼警告的最佳編碼方式是什么?圍繞這個功能的#ifdef?#ifdef _MSC_VERvoid ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal qrLeft, qreal qrTop, qreal qrWidth, qreal qrHeight)#elsevoid ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal /*qrLeft*/, qreal /*qrTop*/, qreal /*qrWidth*/, qreal /*qrHeight*/)#endif{這太丑了,但似乎是編譯器喜歡的方式?;蛘呶以诤瘮的┪矠樽兞抠x值為零?(我討厭它,因為它改變了程序流程中的某些東西以使編譯器警告靜音)。有正確的方法嗎?
3 回答

萬千封印
TA貢獻1891條經驗 獲得超3個贊
你可以將它放在“ (void)var;
”表達式中(什么都不做),以便編譯器看到它被使用。這在編譯器之間是可移植的。
例如
void foo(int param1, int param2){ (void)param2; bar(param1);}
要么,
#define UNUSED(expr) do { (void)(expr); } while (0)...void foo(int param1, int param2){ UNUSED(param2); bar(param1);}

神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
在GCC和Clang中,您可以使用__attribute__((unused))
預處理器指令來實現您的目標。
例如:
int foo (__attribute__((unused)) int bar) { return 0;}
- 3 回答
- 0 關注
- 1592 瀏覽
添加回答
舉報
0/150
提交
取消