This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem with structs as return values

I am using functions, which returns structs. This shouldn't
be a problem in C. And it works mostly.
But are there contexts where this is not
allowed? Maybe there a conflicts because
those structs are returned by using registers?

for example:

typedef struct {

unsigned char Byte_1;
unsigned char Byte_2;
} two_byz;

two_byz f_a(void)
{
two_byz rueck;
rueck.Byte_1 = 0xAA;
rueck.Byte_2 = 0xBB;
return ( rueck);
}


two_byz test;

test = f_a();

Again: this example does work - mostly!
But as
i used this module in another program
there was just no return value.
It is really weird, the function then
behaves like void f_a(void).

0