簡體   English   中英

這個宏是什么意思? #define UNUSED(x)((x)=(x))

[英]what does this macro mean ? #define UNUSED(x) ((x)=(x))

這個宏是什么意思? 我只是在源文件中找到以下宏:

#define UNUSED(x) ((x)=(x))

它可能會抑制函數未使用的變量/參數的編譯器警告。 你也可以用這個:

// C++ only
void some_func(int /*x*/)

要么

// C and C++
void some_func(int x)
{
    (void)x;
}

或者您的編譯器可能支持一個標志來執行此操作,但這些標記是可移植的,不會跳過有效警告。

使用它來刪除引用未使用變量的任何編譯器警告。

一些編譯器會發出有關未使用變量的警告 - 已定義但從未引用過的變量。 有時您只有在某些條件ifdef下引用變量的代碼(僅在某些平台上或僅在調試中),並且在定義變量時復制這些條件是不方便的。 在這種情況下,可以使用這樣的宏來抑制未使用的變量警告。

它使編譯器無法抱怨沒有使用變量。

其他方法:

  • 完全刪除變量: void foo( int )
  • out注釋變量: void foo( int /* value */ )
  • 使用那個宏: void foo( int value ){ UNUSED(value); } void foo( int value ){ UNUSED(value); }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM