Shift auf beliebigen Bereich

Enumerator

Mitglied Kamel
'n Abend!

Kann mir jemand verraten wie ich einen Shift auf einen beliebig großen Speicherbereich ausführe und nicht auf eine einzelne Variable? Hintergrund ist ein Array, bei dem ich das erste Element "shiften" will - im Sinne von Perls shift oder PHPs array_shift, aber ohne Interesse am Rückgabewert. Code wie dieser hier...
C:
while(i != length)
    array[i++] = array[i+1];
... dürfte weitaus langsamer sein.

Gruß
Enum
 
Soweit ich weis, ist das so nicht lösbar.
Die Shifts werden ja nicht vom Compiler zusammengebastelt, sonderm sind noch weiter "unten" im X86-Befehlssatz vorhanden und unterstützen eben keine Arrays
Gruß
 
Zuletzt bearbeitet:
Das ist schade. Ich hatte schon überlegt, einfach einen Datentyp zu definieren der genauso groß ist wie das gesamte Array, allerdings spielt mir da die Optimierung des Compilers einen Streich, da ein handelsübliches struct nicht zwingend so groß sein muss wie die Typen der Member suggerieren... Aber vielleicht kann man da ja doch noch mal ansetzen?
Wenn's nicht will werd' ich wohl mal schauen was sich mit inline Assembler anstellen lässt.
 
Zurück