Array[i] & *(Array+i)
-
Hallo,
beide Versionen sind ja bekanntlich moeglich. Gibt es eigentlich
einen Geschwindigkeitsunterschied zwischen diesen Versionen (wenn
ja, kann man ihn bestimmt nicht messen, wuerd mich nur mal so
interessieren), oder wird Array[i] in *(Array+i) uebersetzt?mfg
v R
-
Übersetzt wird da glaube ich nix, aber es gibt keinen Unterschied, da beide Versionen auf das selbe Ergebnis andeuten, nur anders ausgedrückt. Bin aber kein C++-Gott.
-
bei solchen simplen Ausdrücken kann es dir völlig egal sein, weil, falls etwas von Beiden schneller ist, garantiert vom Compiler so hinoptimiert wird.
Mfg MAV
-
Das ist egal.
Aber bei sowas empfiehlt es sich halt den ASM Code anzusehen, den dein Compiler daraus macht.
-
Egal isses mir ja auch
Aber ich werd' Shades Empfehlung nachgehen und mir mal den ASM Code anschauen.
mfg
v R
-
nur mal ne Frage von nem noch größeren n00b
wie sieht man sich den asm code an?
-
Du kompilierst mit Debug-Informationen und klickst im Debugger auf "Assemblercode" oder du kompilierst normal und disassemblierst die exe-Datei.
Oder du guckst in die Hilfe deines Compilers und lässt den Assembler-Code anstelle Byte-Code ausspucken.
-
Array-Zugriff ist im Standard als Pointer-Addition definiert, d.h. selbst ein naiv designter Compiler ohne jegliche Optimierung wird für beide Ausdrücke den gleichen Code generieren.
-
Das ist gut, dann brauch ich mir auch den Code nicht anschauen
mfg
v R