3

这是来自 Make Controller 固件的一些 C 代码。我很熟悉 void 指针是什么,但我从未见过像这个函数的第一行这样的语法。这样做究竟是为了什么?

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

3 回答 3

5

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

(请记住,表达式仍在计算中;使表达式完全被忽略是比较棘手的。)

于 2011-02-16T04:14:17.543 回答
1

它可能是为了抑制有关未引用参数的编译器警告,例如UNREFERENCED_PARAMETER宏。

于 2011-02-16T04:14:12.653 回答
0

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

于 2011-02-16T04:13:48.677 回答