亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何最好地消除有關未使用變量的警告?

如何最好地消除有關未使用變量的警告?

C++
開滿天機 2019-08-06 16:03:53
如何最好地消除有關未使用變量的警告?我有一個跨平臺應用程序,在我的一些函數中,并沒有使用傳遞給函數的所有值。因此我收到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);}


查看完整回答
反對 回復 2019-08-06
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

在GCC和Clang中,您可以使用__attribute__((unused))預處理器指令來實現您的目標。
例如:

int foo (__attribute__((unused)) int bar) {
   return 0;}


查看完整回答
反對 回復 2019-08-06
?
絕地無雙

TA貢獻1946條經驗 獲得超4個贊

您當前的解決方案是最好的 - 如果您不使用它,請注釋掉參數名稱。這適用于所有編譯器,因此您不必使用預處理器專門為GCC執行此操作。


查看完整回答
反對 回復 2019-08-06
  • 3 回答
  • 0 關注
  • 1592 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號