This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C calling conventions: how to pass a struct parameter?


Thank you for your answers. Unfortunately, I was not clear enough. I want to know what happens in the registers and in the stack when a procedure like

void PrintFoo(struct Foo foo)

is called. There is no universal C calling convention set for x86, so I am interested in how GCC usually does.

What about a struct return value:
struct bar Function() ?

Thanks.
Cezar


Eljay Love-Jensen wrote:


Hi Cezar,

(Hey, "Cezar", cool name.)

This should work:

struct Foo { int a,b,c; };

void PrintFoo(struct Foo foo)
{
  printf("Foo:%d,%d,%d\n", foo.a, foo.b, foo.c);
}

That's a pass-by-value.

Here's pass-by-pointer:



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]