David Kastrup [off-list ref] 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.