, , , , .
, , - memcpy, , - , , .
,
struct a some_function(struct a)
{
a.width = 99;
return a;
}
, , , , , .
, C ...
, , , .
memcpy(&b, &a, sizeof(b));
b = a;
, ; - hokum, C (.. C89), , .
, -, pre-ansi ( 1986 ) unix.
/tmp> gcc a.c
a.c:
C-68000U 1.8.0 Copyright (c)1985,1986 Green Hills Software, Inc.
linking a:
/tmp> ./a
10, 5
, , ! .
, , , . 68k - //, , .
, , , - ,
; line #13 memcpy(&b, &a, sizeof(b));
140 PEA 0x8
144 PEA (-8,FP)
148 PEA (-16,FP)
152 JSR memcpy
; line #14
170 LEA (-8,FP),A1
174 LEA (-16,FP),A0
178 MOVE.L (A1)+,(A0)+
180 MOVE.L (A1)+,(A0)+
, b=a,
170 LEA (-112,FP),A1
174 LEA (-224,FP),A0
178 MOVEQ #27,D0
180 MOVE.L (A1)+,(A0)+
182 DBF D0,main+60
, memcpy, .
, - - , ( )