Endianess
-
EOutOfResources schrieb:
_matze schrieb:
Hier geht es aber nicht um den geposteten Code, also ist das eigentlich irrelevant.
Mir geht es darum, dass der Code auf einem ISO-Compiler für C++ nicht kompilieren darf!
Ja, ich habe auch gesehen, dass der Rückgabewert von main fehlt, aber mir geht es darum, das es nicht darum geht.

-
EOutOfResources schrieb:
_matze schrieb:
Hier geht es aber nicht um den geposteten Code, also ist das eigentlich irrelevant.
Mir geht es darum, dass der Code auf einem ISO-Compiler für C++ nicht kompilieren darf!
Mal abgesehen vom fehlenden int vor der main ist alles okay. Auch für C++.
-
Es ist einfach so: hier wird LE/BE diskutiert. Der Eingangscode ist hierzu irrelevant. Es ist also unnötig, zu beweisen, wie gut man zwischen bösem C und "wahrem" C++ unterscheiden kann.

-
Was soll jetzt diese unnoetige Korinthenkackerei von EOutOfResources?
Passt meine Sichtweise aus Posting 2?
-
EOutOfResources schrieb:
_matze schrieb:
Hier geht es aber nicht um den geposteten Code, also ist das eigentlich irrelevant.
Mir geht es darum, dass der Code auf einem ISO-Compiler für C++ nicht kompilieren darf!
Ist das so?
-
LittleBigPlanet schrieb:
Was soll jetzt diese unnoetige Korinthenkackerei von EOutOfResources?
Sowas kommt vor hier im Forum. Einfach ignorieren, schlimmstenfalls füttert man sonst schnell irgendwelche Trolle.
Passt meine Sichtweise aus Posting 2?
Grob, ja.
-
Michael E. schrieb:
EOutOfResources schrieb:
_matze schrieb:
Hier geht es aber nicht um den geposteten Code, also ist das eigentlich irrelevant.
Mir geht es darum, dass der Code auf einem ISO-Compiler für C++ nicht kompilieren darf!
Ist das so?
Na ja, das stimmt schon, denke ich, oder nicht? main muss int als Rückgabewert haben, und default-int gibt's nicht in C++. Ach, ist ja auch egal, und bringt LittleBigPlanet nicht weiter...
-
Dabei habe ich jetzt auch direkt eine Frage. Wenn die Shifoperatoren unabhängig von der Endianess arbeiten, tun das dann auch die restlichen Bitoperatoren oder sind die Endianessabhängig?
-
_matze schrieb:
Michael E. schrieb:
Ist das so?
Na ja, das stimmt schon, denke ich, oder nicht? main muss int als Rückgabewert haben, und default-int gibt's nicht in C++. Ach, ist ja auch egal, und bringt LittleBigPlanet nicht weiter...
Ich denke mal M.E. zielt drauf ab, dass der Standard Extensions für Compiler erlaubt, die anderweitig ungültigen Code gültig machen dürfen. Aber wie du sagts, hilft das dem Fragesteller nicht.
Back to topic.
-
GroßerEnder schrieb:
Wenn die Shifoperatoren unabhängig von der Endianess arbeiten, tun das dann auch die restlichen Bitoperatoren oder sind die Endianessabhängig?
Bei
&,|,^und~wird ja Bit für Bit unabhängig verknüpft, daher spielt die Endianess keine Rolle.
-
Das heißt dieser Code
unsigned high = 42; unsigned char low = 23; unsigned short both = static_cast<unsigned short>(high << 8 | low); std::cout << both << std::endl;ist doch Plattformunabhängig?
(Aus nem anderen Thread kopiert)
-
So gut wie. Das Einzige, was IMHO schief gehen kannst, ist, dass ein Short zu klein sein kann, um zwei Chars aufzunehmen. Aber dafür bräuchte man schon mal mindestens 9-Bit-Chars. Sprich: Es geht für normale Programmierer immer gut.