请解释以下演员表的含义
可能的重复:
void 的奇怪使用
我正在阅读 C 代码并遇到以下内容。有人可以解释一下这是做什么的吗?
static int do_spawn(const char *filename)
{
(void)filename;
// todo: fill this in
return -1;
}
具体来说,(void)文件名在做什么?
Possible Duplicate:
Weird use of void
I was reading C code and came across the following. Can somebody please explain what this does?
static int do_spawn(const char *filename)
{
(void)filename;
// todo: fill this in
return -1;
}
Specifically, what is the (void) filename doing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
编译器有时会抱怨未使用的参数;
(void)
“cast”只是一种在 void、无副作用的上下文中使用变量的方法,这样编译器就不会抱怨它“未使用”。编辑:正如罗德里戈在下面指出的那样,可以在没有
(void)
前缀的情况下抑制编译器警告,但随后可能会出现另一个警告(关于表达式无效) 。因此(void)filename
是防止这两个警告的方法。Compilers sometimes complain about unused parameters; the
(void)
"cast" is simply a way to use the variable in a void, non-side-effect context so that the compiler won't complain about it being "unused".EDIT: As rodrigo points out below, the compiler warning can be suppressed without the
(void)
prefix, but then another warning (about the expression having no effect) may appear instead. So(void)filename
is how you might prevent both warnings.它只是防止有关未使用参数的警告,仅此而已。
It's preventing a warning about an unused parameter, nothing more.