Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Feb 2000 21:21:05 -0800
From:      Marco Molteni <molter@csl.sri.com>
To:        freebsd-chat@FreeBSD.ORG
Subject:   Re: how to do this C preprocessor trick?
Message-ID:  <20000225212105.A5667@sofia.csl.sri.com>
In-Reply-To: <20000225214616.U21720@fw.wintelcom.net>; from bright@wintelcom.net on Fri, Feb 25, 2000 at 09:46:17PM -0800
References:  <20000225182432.A5017@sofia.csl.sri.com> <20000226001121.A20702@cc942873-a.ewndsr1.nj.home.com> <20000225214616.U21720@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 25 Feb 2000, Alfred Perlstein wrote:

> One of the nasty side effects is that this makes the macro expand to
> multiple statements.
> 
> what's so bad about that?
> 
> if (foo < 0)
> 	errmsg("foo < 0");
> 
> Macros that expand to multiple statements ought to be enclosed in a
> do { } while(0) loop.

Alfred,

I saw many macros in the kernel sources enclosed in a do {} while (0)
loop. Could you explain why

> Macros that expand to multiple statements ought to be enclosed in a
> do { } while(0) loop.

Thanks
Marco
-- 
Marco Molteni "rough consensus and running code"
SRI International, System Design Laboratory


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-chat" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000225212105.A5667>