Hallo pl,
interessant wirds, wie schon gesagt, beim Transport:
In der Tat, vor allem deshalb, weil für die float-Typen das gleiche gilt wie für die int-Typen. Der C Standard garantiert Dir sizeof(float) <= sizeof(double) <= sizeof(long double), aber niemand garantiert ein „echt kleiner“ oder „sizeof(float) == 32“.
Binärübertragung ist riskant. Der Programmcode wird einfacher - aber nur so lange, wie Du die verwendeten Maschinen genau kennst. So, wie Du es programmiert hast, ist es nicht portabel und funktioniert nur auf Maschinen mit einer bestimmten Architektur. Das sind sehr viele Maschinen, aber längst nicht alle. D.h. dein Programm sollte in der Startup-Phase zumindest eine Assert-Folge enthalten, die deine Architekturannahmen (wie sizeof(float)==32 oder bestimmte Endianness) überprüft und das Programm abbricht, wenn sie nicht erfüllt sind.
Rolf
sumpsi - posui - clusi