was sind unions?
gibt es nicht sowas wie packed records?
ich hab länger nichts mehr mit C gemacht, aber die Idee mal in Delphi:
Delphi-Quellcode:
TIP =
packed record
I1, I2, I3, I4: Byte;
end;
PIP = @TIP;
//Pointer auf TIP(?)
PInt = @LongInt;
//Pointer auf LongInt(?)
procedure IP2Int;
var IP: PIP;
I: PInt;
begin
I:=PIP;
end;
procedure Int2IP;
var IP: PIP;
I: PInt;
begin
I:=PIP;
end;
oder so:
Delphi-Quellcode:
var
P: Pointer
IP: TIP; I: LongInt;
begin
P:=@I;
IP:=^P;
//und umkehrt....
{ Prinzip:
Mach Pointer auf Quelle (egal welche)
nimm Pointer und dereferenziere ihn in das Ziel rein...
}
end;
und noch eine
es gibt in C doch eine funktion die Memory kopiert, oder?
MemCP(@IP, @I, 4);
o.ä....