UNREFERENCED_PARAMETER的作用
生活随笔
收集整理的這篇文章主要介紹了
UNREFERENCED_PARAMETER的作用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
UNREFERENCED_PARAMETER(pParam);
跟蹤到宏定義
#define UNREFERENCED_PARAMETER(P) (P)
#define DBG_UNREFERENCED_PARAMETER(P) (P)
#define DBG_UNREFERENCED_LOCAL_VARIABLE(V) (V)
使用的方法比如:
int SomeFunction(int arg1, int arg2)
{
UNREFERENCED_PARAMETER(arg2)
...
}
UNREFERENCED_PARAMETER 展開傳遞的參數或表達式。其目的是避免編譯器關于未引用參數的警告。許多程序員,包括我在內,喜歡用最高級別的警告 Level 4(/W4)進行編譯。Level 4 屬于“能被安全忽略的事件”的范疇。雖然它們可能使你難堪,但很少破壞你的代碼。例如,在你的程序中可能會有這樣一些代碼行:
int x=1;
但你從沒用到過 x。也許這一行是你以前使用 x 時留下來的,只刪除了使用它的代碼,而忘了刪除這個變量。Warning Level 4 能找到這些小麻煩。所以,為什么不讓編譯器幫助你完成可能是最高級別的專業化呢?用Level 4 編譯是展示你工作態度的一種方式。如果你為公眾使用者編寫庫,Level 4 則是社交禮節上需要的。你不想強迫你的開發人員使用低級選項清潔地編譯他們的代碼。
問題是,Level 4 實在是太過于注意細節,在 Level 4 上,編譯器連未引用參數這樣無傷大雅的事情也要抱怨(當然,除非你真的有意使用這個參數,這時便相安無事)。假設你有一個函數帶來兩個參數,但你只使用其中一個:
int SomeFunction(int arg1, int arg2)
{
return arg1+5;
}
使用 /W4,編譯器抱怨:
“warning C4100: ''arg2'' : unreferenced formal parameter.”
為了騙過編譯器,你可以加上 UNREFERENCED_PARAMETER(arg2)。現在編譯器在編譯你的引用 arg2 的函數時便會住口。并且由于語句:
arg2;
實際上不做任何事情,編譯器不會為之產生任何代碼,所以在空間和性能上不會有任何損失。
跟蹤到宏定義
#define UNREFERENCED_PARAMETER(P) (P)
#define DBG_UNREFERENCED_PARAMETER(P) (P)
#define DBG_UNREFERENCED_LOCAL_VARIABLE(V) (V)
使用的方法比如:
int SomeFunction(int arg1, int arg2)
{
UNREFERENCED_PARAMETER(arg2)
...
}
UNREFERENCED_PARAMETER 展開傳遞的參數或表達式。其目的是避免編譯器關于未引用參數的警告。許多程序員,包括我在內,喜歡用最高級別的警告 Level 4(/W4)進行編譯。Level 4 屬于“能被安全忽略的事件”的范疇。雖然它們可能使你難堪,但很少破壞你的代碼。例如,在你的程序中可能會有這樣一些代碼行:
int x=1;
但你從沒用到過 x。也許這一行是你以前使用 x 時留下來的,只刪除了使用它的代碼,而忘了刪除這個變量。Warning Level 4 能找到這些小麻煩。所以,為什么不讓編譯器幫助你完成可能是最高級別的專業化呢?用Level 4 編譯是展示你工作態度的一種方式。如果你為公眾使用者編寫庫,Level 4 則是社交禮節上需要的。你不想強迫你的開發人員使用低級選項清潔地編譯他們的代碼。
問題是,Level 4 實在是太過于注意細節,在 Level 4 上,編譯器連未引用參數這樣無傷大雅的事情也要抱怨(當然,除非你真的有意使用這個參數,這時便相安無事)。假設你有一個函數帶來兩個參數,但你只使用其中一個:
int SomeFunction(int arg1, int arg2)
{
return arg1+5;
}
使用 /W4,編譯器抱怨:
“warning C4100: ''arg2'' : unreferenced formal parameter.”
為了騙過編譯器,你可以加上 UNREFERENCED_PARAMETER(arg2)。現在編譯器在編譯你的引用 arg2 的函數時便會住口。并且由于語句:
arg2;
實際上不做任何事情,編譯器不會為之產生任何代碼,所以在空間和性能上不會有任何損失。
轉載于:https://www.cnblogs.com/huking/archive/2009/11/25/1610593.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的UNREFERENCED_PARAMETER的作用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET之SOAP的发送、接收与处
- 下一篇: 读取xml文件基于xpath