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

C语言函数内定义结构体变量报错:storage size of 'v' isn't known原因

问题解答

错误原因

  • C语言严格区分大小写,你定义的结构体类型是struct Vector(首字母大写V),但在Sum_Vector函数中声明变量时误写为struct vector(首字母小写v),编译器无法识别这个未定义的类型,因此抛出“storage size of 'v' isn't known”错误。
  • 完全可以在函数内部创建结构体变量,你的问题和函数内定义结构体变量的行为无关,纯粹是拼写大小写错误导致的。

修正后的代码

#include<stdio.h>

struct Vector{
    int x;
    int y;
};

struct Vector Sum_Vector(struct Vector v1, struct Vector v2){
    struct Vector v;  // 修正为大写V的Vector
    v.x = v1.x + v2.x;
    v.y = v1.y + v2.y;
    return v;
}

int main(){
    struct Vector v1,v2,v3;
    v1.x = 10;
    v1.y = 11;

    v2.x = 5;
    v2.y = 6;

    v3 = Sum_Vector(v1,v2);
    printf("Vector: %di+%dj\n",v3.x,v3.y);
    return 0;
}

内容的提问来源于stack exchange,提问作者RACHIT MITTAL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:24:33