[英]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 )
void foo( int /* value */ )
void foo( int value ){ UNUSED(value); }
void foo( int value ){ UNUSED(value); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.