Robert B.: C Pointerei

Beitrag lesen

Hallo pl,

PS: Was mich nervt ist, daß C den Little Endian bevorzugt.

Tut es nicht. Dein Intel-Prozessor tut das. Nimm einen IBM Großrechner oder einen Motorola 68xxx Prozessor, die sind Big Endian.

Stimmt natürlich. Aber am Perlcode siehst Du, wie einfach sich Perl damit tut, n ist der Short in Networkorder. Damit und mit den anderen Schablonen wirst Du von der Architektur unabhängig: Perlcode läuft plattformübergreifend.

Das kann C auch: Im Header arpa/inet.h findest du ntohs & Co, die für dich „das Denken übernehmen“: ntohs bspw. steht für network to host short, das heißt, dass der short-Wert (eigentlich uint16_t) anschließend definitv in der richtigen Host-Endianess vorliegt – auf IBM-PC kompatiblen Prozessoren findet daher ein Byte-Swapping statt, bei PowerPC zum Beispiel nicht.

Viele Grüße
Robert