8
glibcのstrlenをすばやく実行するには、なぜ複雑にする必要があるのですか?
ここでstrlenコードを調べていて、コードで使用されている最適化が本当に必要かどうか疑問に思っていましたか?たとえば、次のようなものが同等以上に機能しないのはなぜですか? unsigned long strlen(char s[]) { unsigned long i; for (i = 0; s[i] != '\0'; i++) continue; return i; } より単純なコードは、コンパイラーが最適化するのに優れていたり、簡単だったりしませんか? strlenリンクの背後にあるページのコードは次のようになります。 /* Copyright (C) 1991, 1993, 1997, 2000, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Torbjorn Granlund (tege@sics.se), with …