在 void func() 中返回一个结构
Returning a struct in a void func()
我正在尝试编译旧 MS-DOS 时代的代码,但这似乎不适用于 GCC:
typedef struct { int x,y,z; } vector;
inline void vect_add(vector& c,vector a, vector b)
{
c.x=a.x+b.x;
c.y=a.y+b.y;
c.z=a.z+b.z;
}
基本上我正在尝试 return 一个稍后用作 vector.x 等的结构,而不是将其重写为指向结构的指针并将所有重写为 vector->x 等
参见(矢量& c,
这可能是有效的 C++,但不是有效的 C。
在 C 中,您需要使用指针、全局变量,或者实际上 return 结构。
typedef struct { int x, y, z; } vector;
inline void vect_add(vector* c, vector a, vector b)
{
c->x = a.x + b.x;
c->y = a.y + b.y;
c->z = a.z + b.z;
}
vect_add(&c, a, b);
我正在尝试编译旧 MS-DOS 时代的代码,但这似乎不适用于 GCC:
typedef struct { int x,y,z; } vector;
inline void vect_add(vector& c,vector a, vector b)
{
c.x=a.x+b.x;
c.y=a.y+b.y;
c.z=a.z+b.z;
}
基本上我正在尝试 return 一个稍后用作 vector.x 等的结构,而不是将其重写为指向结构的指针并将所有重写为 vector->x 等
参见(矢量& c,
这可能是有效的 C++,但不是有效的 C。
在 C 中,您需要使用指针、全局变量,或者实际上 return 结构。
typedef struct { int x, y, z; } vector;
inline void vect_add(vector* c, vector a, vector b)
{
c->x = a.x + b.x;
c->y = a.y + b.y;
c->z = a.z + b.z;
}
vect_add(&c, a, b);