So far as I know, structs can be passed as parameter by value, or we can also pass it by reference, using pointers.
Is it efficient passing structs by value? If we have big structs with lots of fields, this does not seem to be efficient, since the struct data is copied to the formal parameters of the function, and this involves computational costs.
It seems that, in these cases, passing structs by reference is a better option. Does this make sense?
Another related question is if compilers do optimizations in this sense, converting parameter passing by value to reference.