Größe der Datentypen vom ISO-Standard festgelegt?
-
Servus,
ich wollte mal fragen, ob die Größe der Datentypen (also z.B. das, was ich mit sizeof(int) herausbekomme) vom ISO-Standard her festgelegt.
Ich muss das wegen der Serialisierung von Objekten/Datentypen wissen.
Vielen Dank schonmal!
-
Nein.
-
Kann je nach PC(CPU) variieren.
-
Ist es dann überhaupt möglich, Objekte/Variablen so zu serialisieren, dass sie plattform-/compilerübergreifend nutzbar sind?
-
cYaONE schrieb:
Ist es dann überhaupt möglich, Objekte/Variablen so zu serialisieren, dass sie plattform-/compilerübergreifend nutzbar sind?
ja.
allerdings nicht in byteform. bedenke auch noch big- und little endian
dh du speicherst nicht write(&length, sizeof(length)) sondern du speicherst den string der length repräsentiert.zum serialisieren wird deshalb gerne XML oder ähnliches verwendet - da hast du dann auch kein versioning problem mehr... (bzw. kannst es umgehen)
-
Auch in Java gibts Probleme mit der Serialisierung zwischen verschiedenen Versionen (z.B. 1.3 zu 1.4).
Wenn du also unter C++ im binären Format serialisierst, wirds zwischen unterschiedlichen Plattformen betsimmt eine Katastrophe geben.
Ich empfehle auch im XML oder einem anderen eigenen "ausgedachten" Format zu serialisieren.
http://www.grinninglizard.com/tinyxml/index.html
http://xml.apache.org/xerces-c/
-
ne, kein XML, dass mag ich nicht. Lieber YAML