C/C++ で構造体を値渡しする場合、構造体の内容をコピーする必要があります。コンパイラはどのようにそれを達成しますか? つまり、通常、このコピーに対して発行されるアセンブリ命令はどれですか?
たとえば、memcpy の呼び出しと比較して、これらはどれくらい速いですか?
次のコードを検討してください。
struct X { int i, j, k; };
void foo(X x);
void foo( int i, int j, int k);
foo(X) と foo(int,int,int) の呼び出しに違いはありますか、それとも生成されたアセンブリ コードは同じでしょうか (パラメーターの受け渡しを考慮して)?