Ist die Verwendung von strlen() in der loop-Bedingung langsamer als nur die überprüfung für das null-Zeichen?

Habe ich gelesen, dass die Verwendung von strlen teurer ist als in solchen Tests wie dieser:

Wir haben einen string x 100 Zeichen lang sein.

Ich denke, dass

for (int i = 0; i < strlen(x); i++)

ist teurer als dieser code:

for (int i = 0; x[i] != '\0'; i++)

Ist es wahr? Vielleicht ist der zweite code funktioniert nicht in manchen situation ist es also besser, das erste?

Wird es besser sein, mit den unten?

for (char *tempptr = x; *tempptr != '\0'; tempptr++)
die zweite Schleife in etwa das tut, was strlen hat intern; dennoch sehe ich nicht den Punkt der Frage
Schreiben und testen es. Metriken sind der beste Weg, zu wissen, was besser ist.
Wenn Sie verbringen Zeit und Mühe, sich Gedanken über Dinge wie diese, Sie können Geld sparen durch den Kauf einen schnelleren computer.
mögliche Duplikate von strlen hier berechnet werden mehrmals verwenden?

InformationsquelleAutor dato datuashvili | 2010-08-02

Schreibe einen Kommentar