这个无效指针发生了什么?

时间:2011-02-16 04:11:42

标签: c void-pointers

这是Make Controller固件中的一些C代码。我熟悉void指针是什么,但我从来没有见过像这个函数的第一行那样的语法。究竟是什么才能实现?

void MakeStarterTask(void* parameters)
{
  (void)parameters;
  Run();
  TaskDelete(NULL);
}

3 个答案:

答案 0 :(得分:5)

它“使用”parameters因此编译器不会发出有关未使用参数的警告,但表达式本身没有任何内容。任何表达式都可以强制转换为void,从而丢弃结果。

(请记住,表达式仍在评估中; to make an expression completely ignored is trickier。)

答案 1 :(得分:1)

可能存在抑制关于未引用参数的编译器警告,例如UNREFERENCED_PARAMETER宏。

答案 2 :(得分:0)

指示编译器不要抱怨未使用的parameters参数。