请解释以下演员的意义

时间:2011-11-18 22:18:42

标签: c casting void

  

可能重复:
  Weird use of void

我正在阅读C代码并遇到以下情况。有人可以解释一下它的作用吗?

static int do_spawn(const char *filename)
{
  (void)filename;
  // todo: fill this in
  return -1;
}

具体来说,(void)文件名在做什么?

2 个答案:

答案 0 :(得分:8)

编译器有时会抱怨未使用的参数; (void)“cast”只是在void,non-side-effect上下文中使用变量的一种方式,这样编译器就不会抱怨它是“未使用”。

编辑:正如rodrigo指出的那样,可以在没有(void)前缀的情况下抑制编译器警告,但是可能会出现另一个警告(关于表达式无效)。所以(void)filename就是如何防止这两种警告。

答案 1 :(得分:3)

它阻止了对未使用参数的警告,仅此而已。