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
相关产品推荐
相关产品推荐

