【问题标题】:What's going on with this void pointer?这个 void 指针是怎么回事?
【发布时间】:2011-06-28 02:25:49
【问题描述】:

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

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

【问题讨论】:

    标签: c void-pointers


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-28
          • 1970-01-01
          • 2010-09-24
          • 2020-04-03
          • 2018-06-20
          • 2011-08-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多