欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Windows窗口程序中的UNREFERENCED_PARAMETER(hPrevInstance)详解

程序员文章站 2022-07-15 13:27:01
...

UNREFERENCED_PARAMETER(hPrevInstance)展开传递的参数和表达式,其目的是关于编译器对未引用的参数的警告,例如,在你的程序中可能会有这样一些代码行: 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;
 实际上不做任何事情,编译器不会为之产生任何代码,所以在空间和性能上不会有任何损失。
相关标签: UNREFERENCED_PARAMETER