私はこの実装を見つけましたchar * strchr (const char *string, int c);
:
for (;;)
if (*string == c)
return (char *) string;
else if (*string == '\0')
return NULL;
else
string++;
ただし、私にとっては、次のことを行うのと同等であり、読みやすくなります。
while (*string != c && *string != '\0')
string++;
return (*string == c) ? ((char *) string) : (NULL);
libc が最初のものを実装するのには何らかの理由があると思います。しかし、その背後にある理由は何ですか?