How are Structure passing and returning implemented by the complier?

When structures are passed as argument to functions, the entire structure is typically pushed onthe stack. To avoid this overhead many programmer often prefer to pass pointers to structure instead of actual structures. Structures are often returned from functions in a location pointed to by an extra, compiler-supported ‘hidden’ argument to the function.