On 5/16/07, Andrew Dougherty <[EMAIL PROTECTED]> wrote:
On Wed, 16 May 2007, Klaas-Jan Stol wrote:

> hi,
> I've been studying the code in the fotw: debug.c and below are my comments,
> if they're of any interest. Feel free to neglect, I'm kinda picky.
>
> 1.
>    while (*command && (isalnum((int) *command) || *command == ',' ||
>        *command == ']'))
>
> I'm not 100% sure, but:
> I've always been taught that this should not be written like this. The issue
> here is that you ASSUME that the compiler does expression short-cutting
> during evaluating the && expression. Suppose a c compiler does not implement
> this,

Short-circuiting like this is guaranteed in C, dating all the way back to
K&R 1.  If the compiler doesn't implement it, it's badly broken.

it's bitwise AND where order isn't guaranteed--i'm pretty sure that's
the point of confusion.
~jerry

Reply via email to