【发布时间】:2011-06-28 02:25:49
【问题描述】:
这是来自 Make Controller 固件的一些 C 代码。我很熟悉 void 指针是什么,但我从未见过像这个函数的第一行这样的语法。这样做到底是为了什么?
void MakeStarterTask(void* parameters)
{
(void)parameters;
Run();
TaskDelete(NULL);
}
【问题讨论】:
标签: c void-pointers
这是来自 Make Controller 固件的一些 C 代码。我很熟悉 void 指针是什么,但我从未见过像这个函数的第一行这样的语法。这样做到底是为了什么?
void MakeStarterTask(void* parameters)
{
(void)parameters;
Run();
TaskDelete(NULL);
}
【问题讨论】:
标签: c void-pointers
它“使用”parameters,因此编译器不会发出关于未使用参数的警告,但表达式本身什么也不做。任何表达式都可以转换为void,这会丢弃结果。
(请记住,表达式仍在计算中;to make an expression completely ignored is trickier。)
【讨论】:
它可能是为了抑制关于未引用参数的编译器警告,例如 UNREFERENCED_PARAMETER 宏。
【讨论】:
指示编译器不要抱怨未使用的parameters 参数。
【讨论】: