gpt4 book ai didi

c - Void 函数抛出 "no return statement"警告

转载 作者:太空狗 更新时间:2023-10-29 15:50:03 26 4
gpt4 key购买 nike

所以我有以下功能,显然是一个空的:

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();
}
}

它抛出

"cpu_stats.c:98:1: warning: no return statement in function returning non-void [-Wreturn-type]".

我试过添加一个空白返回并返回 0 但没有成功。

知道为什么会抛出这个错误,以及如何解决?

最佳答案

这不是一个void函数,这是一个void*(void指针)函数。它必须返回一个值,该值必须是指向任何类型数据的指针,或者 NULL

在您的情况下,return 不是必需的,因为该函数永远不会返回:它有一个永远运行的 while(1) 循环。更好的方法是使其成为 void 函数,而不是 void* 函数,除非它必须符合某些预定义的函数指针类型。

如果更改返回类型不是一个选项,例如,因为您必须将此函数作为 pthread_createstart_routine 参数传递您可以通过在函数体末尾添加 return NULL 来消除警告。

关于c - Void 函数抛出 "no return statement"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44955414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com