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-08-30 14:38

>>24
It's a whole lot of overkill. You can just get away with declaring the arguments restrict and you will probably get the same behavior.

Doing all the reads up-front (the const block) does help push the loads up which will make it faster, but you really shouldn't be doing that without profiling it anyway. Just write it naturally but declare the arguments restrict.

>>23
If you wrap them in a define, which you should do anyway, then it IS strict C89.

#ifdef __GNUC__
#define INLINE __inline
#define RESTRICT __restrict
#else
#define INLINE
#define RESTRICT
#endif

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