接触元
日時失念
GNU glibcのソースコードに、本当にクールなコードを見つけました。ヘッダファイルのstring.hにあるstrlen関数です。
[...]
で、この関数は文字列を先頭から1文字ずつ検索して、longのワード長の境界にある文字を探すところから始まります。もし途中で文字列の終了を検知したら関数が終了して長さを返します。
for (
char_ptr = str;
((unsigned long int) char_ptr & (sizeof (longword) - 1)) != 0;
++char_ptr
) {
if (*char_ptr == '\0') return char_ptr - str;
}
読み込み中...