Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

C89 structs

Name: Anonymous 2010-08-30 0:37

Hi /prog/. When I program C I usually just use whatever features gcc allows without really worrying about different standards. However, I am now trying to learn strict C89. I know that it's no longer "standard" C, but I want to learn it anyways.

typedef struct {
    int a, b;
} s;


So normally, if I wanted to return an s from a function I would just use return (s) {1, 2};, but apparently that's not allowed in C89. So right now I'm using
s res;
res.a = 1;
res.b = 2;
return res;


Is there a better/shorter way to do this?

Thanks.

Name: Anonymous 2010-09-02 2:28

>>76
Yeah but they could be inlined. Almost all of your vector functions should be inlined anyway so your compiler can take full advantage of SIMD instructions. Can't the latest SSE set even do shit like dot products in a single instruction these days? (I'm kind of out of the loop.)

And if it is a non-trivial function, then the stack space is the least of your worries. Plus many C++ compilers are used to passing in a pointer to store the return value to avoid an extra by-value copy; there's no reason they wouldn't do the same for C.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List