Gibt es irgendwelche Leistungszuwächse beim Inkrementieren des char-Zeigers über den Zugriff auf Elemente nach Index?

8

Ich bin dabei, mein "C" -Wissen zu aktualisieren. Ich bekomme diese Arrays zerfallen zu Zeigern und wie das funktioniert. In der String-Verarbeitung laufe ich weiter in Code, der so aussieht:

%Vor%

Welchen Leistungszuwachs erhalte ich aus meinem String-Verarbeitungscode, anstatt meine Funktion als diese zu schreiben?

%Vor%

Gibt es ein einfaches Lexikon für die Verwendung eines Zeigers und wann nicht?

    
ultrasounder 15.12.2015, 22:13
quelle

1 Antwort

8

Dies ist compilerabhängig. Einige Compiler bieten einen Leistungsgewinn für die eine oder andere Methode.

Es kann jedoch nützlich sein, sich ein bestimmtes Beispiel anzusehen. Mit gcc -S -O0 gibt die niedrigste optimierte Assembly-Ausgabe auf meinem Rechner 3 mehr Anweisungen für die erste Funktion als die zweite Funktion.

Mit dem Flag -O3 werden sie jedoch für identische Assemblydateien optimiert.

Edit: siehe auch Bracketing, das Ihren Code so leserlich und resistent gegenüber unglücklichen Fehlern wie möglich macht:)

%Vor%

Bearbeiten:

Um Ihre Frage klar zu beantworten: Verwenden Sie das, was Ihnen am klarsten ist und wer Ihren Code lesen kann. Der Leistungsschub, den Sie bekommen können, ist vernachlässigbar im Vergleich zum Vorteil der Lesbarkeit und Klarheit der Absicht. Überlassen Sie es dem Compiler, diese Art von Leistung aus Ihrem Code herauszuquetschen

    
Dylan Kirkby 15.12.2015, 22:22
quelle

Tags und Links