在 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);