You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言返回结构体时报‘return’ with a value, in function returning void警告

警告产生原因

  • 你通过typedef定义了匿名结构体的别名为values,C语言中这种写法仅声明了别名values作为合法类型名,不存在名为struct values的结构体类型。
  • 定义get_keyword函数时,返回值写为struct values,编译器无法识别该类型,部分兼容旧C标准的编译器会将无法识别的返回类型默认判定为void,此时函数内部返回keyword变量的操作就触发了「返回void的函数带有返回值」的警告。

解决方法

任选其中一种即可:

  1. 直接使用已经定义好的类型别名,修改get_keyword函数的返回值声明:
// 修改前
struct values get_keyword(void)
// 修改后
values get_keyword(void)
  1. 定义结构体时显式声明结构体标签,让struct values成为合法类型:
// 修改前
typedef struct
{
  int a;
  char b;
}
values;

// 修改后
typedef struct values
{
  int a;
  char b;
}
values;

内容的提问来源于stack exchange,提问作者Mahesh Reddy Sanagapalle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 22:57:01