Given I'll return a large struct in a function like here:
#include <stdio.h>
// this is a large struct
struct my_struct {
   int x[64];
   int y[64];
   int z[64];
};
struct my_struct get_my_struct_from_file(const char *filename) {
    int tmp1, tmp2; // some tmp. variables
    struct my_struct u;
    // ... load values from filename ...
    return u;
}
int main() {
    struct my_struct res = get_my_struct_from_file("tmp.txt"); // <-- here
    printf("x[0] = %d\n", res.x[0]);
    // ... print all values ...
}
At the place marked by here, do I have to assume that this large struct is copied or is it likely that the compiler does something to avoid this?
Thank you
 
     
    