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 3:46

>>77
This shit ain't being vectorized unless you do it manually.

And yes, if it's inlined obviously it won't create the useless copies. But then nothing will be "passed" to functions either.

C and C++ use basically the same semantics for returning structs, your understanding of C++ is flawed if you think it avoids the extra by-value copies with the same prototypes.

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