定义 USE(x) (x) = (x)
在其中一个 C 源代码文件中,我发现了以下行(宏):
#define USE(x) (x) = (x)
它的用法如下:
int method(Obj *context)
{
USE(context);
return 1;
}
在谷歌搜索后,我发现了以下描述:
// 删除某些编译器的宏 警告
你能告诉我更多关于这个宏的信息吗?
感谢您的回答!
In one of the C source code files I found the following line (macro):
#define USE(x) (x) = (x)
It is used like this:
int method(Obj *context)
{
USE(context);
return 1;
}
After googling for it, I found the following description:
// Macro to get rid of some compiler
warnings
Could you please tell me more about this macro?
Thanks for your answers!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
当变量从未真正用于任何用途时,一些编译器会抱怨。例如:
给出:
奇怪的是,我可以使用你的宏来消除这些警告:
Some compilers complain when variables are never actually used for anything. for instance:
Gives:
Queerly, I can just get rid of those warnings using your macro:
当定义/声明变量但从未使用过时,编译器会发出警告。其中包括函数参数。某些编码风格要求始终命名函数参数,但其中一些可能不会在函数中使用。它们被保留以供将来使用。对于这些情况,您可以
USE(param)
来避免警告The compilers give warnings when a variable is defined/declared but never used. These include function arguments. Some coding styles require to always name function arguments, but some of them may not be used in the function. They are reserved for future use. For these cases you could
USE(param)
to avoid the warning使用 gcc,您可以使用 __attribute__((unused)) 来抑制警告。
With gcc you can use
__attribute__((unused))
to suppress the warning.如果局部变量未在定义的函数中使用,大多数(如果不是全部)主要编译器都会发出警告。我想象宏对某个变量进行任意操作,以确保没有为该变量标记警告。
Most (if not all) major compilers will offer warnings if local variables are not used within the function they are defined. I imagine that macro does an arbitrary operation on some variable to ensure that no warning is flagged for the variable.