unterschiedliche sizeof struct (Win vs. Linux)
-
Hallo Leute,
ich schreibe grad Plattformübergreifenden code und benutze
ein struct zur Client-Server-Kommunikation.Bei Empfang der Daten überprüfe ich anhand der Länge der erhaltenen Daten
um welches struct es sich handelt.Und genau dabei ist mir eine kleine Ungereimtheit aufgefallen.
Und zwar ist das struct unter win 72 Bytes groß.
Von dem Linux-Client kamen aber nur 68.also: größe der vorkommenen Datentypen vergleichen. Ergebnis, alle verwendeten
Datentypen haben unter Win und Linux die selbe Größe.Ich hoffe Ihr könnt mir rasch bei diesem Wissensproblem helfen.
Danke
-
Der Unterschied liegt nicht an der Größe der Datentypen, sondern daran, dass der Compiler aus gründen der Effizienz die Elemente an DWord Grenzen ausrichtet. (CPU kann dann schneller darauf zugreifen)
Diese Sache kann man bei fast allen Compilern einstellen. (struct member align).
-
Ihr seid ja fix!
Ich danke Dir für den Hinweis, werde den Wert angleichen und es nochmal nachlesen, denn wirklich verstanden hab ich es nicht
Dennoch vielen Dank !
-
Oppodelldog schrieb:
Ich danke Dir für den Hinweis, werde den Wert angleichen und es nochmal nachlesen, denn wirklich verstanden hab ich es nicht
könntes auch mal nach "padding bytes" suchen