David Kastrup <d...@gnu.org> writes:

> How about a function body of
>
>       do {
>               if (!*prefix)
>                       return str;
>         } while (*str++ == *prefix++);
>         return NULL;
>
> I'm not too fond of while (1) and tend to use for (;;) instead, but that
> may again partly be due to some incredibly non-optimizing compiler back
> in the days of my youth.  At any rate, the do-while loop seems a bit
> brisker.

I do not have strong preference between "while (1)" and "for (;;)",
but I tend to agree

        for (;; prefix++, str++) {
                if (!*prefix)
                        return str;
                if (*str != *prefix)
                        return NULL;
        }

may be easier to read than what I suggested.  Your do-while loop is
concise and very readable, so let's take that one (I'll forge your
Sign-off ;-)).

I haven't looked at the generated assembly of any of these, though.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to