所以我有以下功能,显然是一个空白:
static void *CpuStatsTestLoop (void *arg){
UNUSED (arg);
rtems_object_set_name(rtems_task_self(), "CPU Usage Thread");
while (1)
{
sleep (CPU_USAGE_REPORT_INTERVAL_SECS);
rtems_cpu_usage_report();
rtems_cpu_usage_reset();
}
}
Run Code Online (Sandbox Code Playgroud)
它扔了
"cpu_stats.c:98:1:警告:函数返回非void [-Wreturn-type]"时没有return语句.
我试过添加一个空白的返回并返回0没有运气.
任何想法为什么它抛出这个错误,以及如何解决?
这不是一个void
函数,这是一个void*
(void
指针)函数.它必须返回一个值,该值必须是指向任何类型数据的指针,或者NULL
.
在你的情况下,a return
是没有必要的,因为函数永远不会返回:它有一个while(1)
循环,它永远运行.更好的方法是使其成为void
函数,而不是void*
函数,除非它必须符合某些预定义的函数指针类型.
如果更改返回类型不是一个选项,例如,因为您必须将此函数作为start_routine
参数传递,pthread_create
您可以通过return NULL
在函数体的末尾添加来使警告静音.
归档时间: |
|
查看次数: |
795 次 |
最近记录: |