auch wenn die tipps da generell gut sind... auch mal auf das datum der seite guckn
seit dem hat sich einiges getan.
Du meinst, der cc65 optimiert jetzt besser? Wäre ja schön, wenn sich da noch was getan hätte. Gibt es da Benchmarks zu?
TIA,
Andreas
auch wenn die tipps da generell gut sind... auch mal auf das datum der seite guckn
seit dem hat sich einiges getan.
Du meinst, der cc65 optimiert jetzt besser? Wäre ja schön, wenn sich da noch was getan hätte. Gibt es da Benchmarks zu?
TIA,
Andreas
Wenn Du bei der 2. Version nach der 6 nichts mehr kopieren willst, musst Du den Zeiger eigentlich nicht mehr erhöhen. Andererseits sind Strings auf vielen Systemen nullterminiert, d.h. sie haben als letztes Zeichen eine Null, woran manche Funktionen das Ende der Zeichenkette erkennen. Schreibst Du Deine Zeichenkette einfach irgendwohin und lässt diese Kennung weg, kannst Du Probleme bekommen, wenn Du danach eine Funktion wie strcmp darauf loslässt.
Dann hab ich inzwischen eine Antwort auf meine eigene Frage gefunden, ob man besser Pointer oder Indizes auf dem 64er nimmt. Indizes sind anscheinend besser.
Punkt 12 hier:
Bitte melde dich an, um diesen Link zu sehen.
Ciao,
Andreas
PS: peiselulli: ich gebs zu, dass ich nie C auf 68000, Arm, Mips oder Alpha programmiert hab. Dort nur Hochsprachen. Andererseits würde ich das Alignment der Variablen im Zweifelsfall dem Compiler überlassen. Das machen viele Compiler auch auf x86 automatisch und ausreichend gut. Aber danke für den Hinweis! ![]()
Hmmh...bei 4 Zeichen könnte man ggf. ja auch tricksen, indem man auf einen Pointer auf Long castet und dann zuweist...bringt zwar wohl auf einem 8-Bitter nix, aber man könnte es ja mal erwähnt haben... ![]()
Noch eine kleine Zusatzfrage zu dem Thema: vor zu langer Zeit, um es hier zuzugeben
gab es mal Diskussionen, ob man schneller mit Pointern oder mit Array-Indizes auf Array-Elemente zugreift. Hintergrund war wohl der, dass zu dieser Zeit schon erste CPUs verfügbar waren, die den Index in einem Register hielten, das Register inkrementierten und dann relativ zum Registerinhalt zugreifen konnten, Hat man mal probiert, was auf der 65xx Serie schneller ist?
Vielen Dank im Voraus,
Andreas
Mit *p_satz= ... änderst Du ja nur den Wert an der Stelle p_satz, aber nichts danach. Dafür musst Du entweder eine Schleife nehmen, oder aber die String-Funktionen nutzen, wie etwa strcpy :
Bitte melde dich an, um diesen Link zu sehen.
C++ ist da wesentlich weiter, aber das geht wohl nicht auf den kleinen Kisten...
Ciao,
Andreas
Edit: peiselulli war schneller...