void foo(VECTOR* v, var x, var y, var z)
{
v->x = x;
v->y = y*2;
v->z = z*3;
}
VECTOR* foo(VECTOR* v, var x, var y, var z)
{
v->x = x;
v->y = y*2;
v->z = z*3;
return v; // now you can use the function as an argument where VECTOR* is expected
}
// same function but accepts NULL as "v" as well
VECTOR* foo(VECTOR* v, var x, var y, var z)
{
static VECTOR _v;
if(!v) v = &_v;
v->x = x;
v->y = y*2;
v->z = z*3;
return v;
}
VECTOR* foo(var x, var y, var z)
{
static VECTOR _v;
_v.x = x;
_v.y = y*2;
_v.z = z*3;
return &_v;
}