1

私はこの実装を見つけました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 が最初のものを実装するのには何らかの理由があると思います。しかし、その背後にある理由は何ですか?

4

1 に答える 1