【问题标题】:Passing arguments to a new thread in OS-iii as void pointer将参数作为 void 指针传递给 OS-iii 中的新线程
【发布时间】:2013-01-02 19:19:54
【问题描述】:

一些背景知识:我正在阅读 Micrium 的 uC/OS-III 用户手册,并按照该指南使用 IAR Embedded Workbench IDE 使用 C 语言进行编程。

代码来自为 uC-Eval-STM32F107 开发板编写的书中提供的一些示例。它正在创建一个新线程,并通过 void 指针传递参数。我熟悉 void 指针和向线程传递参数。

调用内核函数创建新线程:

OSTaskCreate( ... );

然后在函数定义中他们做了一些我不知道如何描述的事情:

static  void  AppTaskStart (void *p_arg)
{
    CPU_INT32U  cpu_clk_freq;
    CPU_INT32U  cnts;
    OS_ERR      err;
    CPU_TS  ts;


   p_arg = p_arg;

    ...
}

或者我在其他示例中也看到代码如下所示:

(void *)p_arg;

他们在做什么,为什么?

【问题讨论】:

    标签: c multithreading embedded


    【解决方案1】:
     p_arg = p_arg;
    

    (void *)p_arg;
    

    放在那里是为了抑制关于未使用变量p_arg的警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-28
      • 2013-01-27
      • 2012-11-08
      • 2012-01-24
      • 2018-08-25
      • 2013-04-25
      • 2013-06-25
      相关资源
      最近更新 更多