回答
這可能是爲了抑制未使用的變量/參數對函數的編譯器警告。你也可以使用此:
// C++ only
void some_func(int /*x*/)
或者
// C and C++
void some_func(int x)
{
(void)x;
}
或者您的編譯器可能支持一個標誌,這樣做,但這些都是便攜,不會跳過無效的警告。
您只能在C++中使用匿名參數;它們在C中是不允許的。(這個問題用C和C++標記,所以你沒有錯,但是你沒有對你的建議給出一個重要的警告。) –
@JonathanLeffler:用C和C++標記問題應該被禁止......雖然好點,但我會說清楚。 –
@EdS。它應該被允許 - 但只有當用戶正確解決關於C和C++之間差異的測驗時。 –
用它來擺脫引用未使用變量的任何編譯器警告。
它使抱怨未使用變量的編譯器無聲。
其他的方式來做到這一點:
- 完全刪除該變量:
void foo(int)
- 出評論的變量:
void foo(int /* value */)
- 使用該宏:
void foo(int value){ UNUSED(value); }
一些編譯器發出警告關於未使用的變量 - 已定義但從未引用的變量。有時你只有在某些條件ifdefs下(僅在某些平臺上或僅在調試中)引用變量的代碼,並且在定義該變量的位置複製這些條件是不方便的。像這樣的宏可以用來在這種情況下抑制未使用的變量警告。
- 1. 宏字符串:#define __T(x)x是什麼意思?和__T(#x)?
- 2. 宏_bnd(X,bnd)是什麼意思?
- 3. C宏中的#x是什麼意思?
- 4. 這個(X,null)是什麼意思?
- 5. 「declare + x」是什麼意思vs「declare -x」?
- 6. (x:_)和[x:_]是什麼意思?
- 7. (x << 13)^ x是什麼意思?
- 8. 什麼意思是$ x(「// *」);
- 9. x [item]是什麼意思?
- 10. 'char x []'是什麼意思?
- 11. 「x == 01」是什麼意思?
- 12. 這是什麼意思*(int *)&x當typecasting?
- 13. 這是什麼意思「var x = function function_name(){}」?
- 14. 這個C宏是什麼意思?
- 15. 'x = x + 2'是什麼意思?在這段代碼中?
- 16. 「#define STR(x)#x」和「#define STR(x)VAL(x)」與「#define VAL(x)#x」之間的區別是什麼?
- 17. F# - 什麼與...匹配:? X as x是什麼意思?
- 18. #define SQR(x)x * x。意外的答案
- 19. 什麼意思* p ++ = x
- 20. x = x(:)是什麼意思在matlab中,其中x是一個向量?
- 21. 「if(x){...}」是什麼意思?其中x是C++中的整數?
- 22. (char *)x或(void *)z是什麼意思?
- 23. y == x是什麼意思在MATLAB?
- 24. C++什麼是'int x =(anyInt1,anyInt2);'意思?
- 25. 「str」+ x +「str」是什麼意思?
- 26. 在numpy中X [:,:,:,i]是什麼意思?
- 27. 「isset($ x)?$ y:$ z」是什麼意思?
- 28. x = tf.placeholder(tf.float32,[None,784])是什麼意思?
- 29. 「本地n = $ {x ## * wlan}」是什麼意思?
- 30. x%2 == 0是什麼意思?
用一些ascii-art來改善預處理器輸出嗎? ;-) – alk
哦,哇,這是實施'(void)x'來避免未使用的變量警告的錯誤方法。使用賦值有副作用,所以這個定義並不意味着它在錫上所說的內容。 – kfsone
除了@kfsone指出的之外,'x'可能根本沒有可訪問的賦值運算符。使用'#define UNUSED(x)(void)x'代替。 – dkrikun