|> On Thu, Apr 05, 2001 at 09:06:20AM -0400, Bart Trojanowski wrote:
|> > So you ask: "why not just use a { ... } to define a macro". I don't
|> > remember the case for this but I know it's there. It has to do with a
|> > complicated if/else structure where a simple {} breaks.
|>
|> This doesn't follow in my mind. I can't think of a case where a { ... }
|> would fail, but a do { ... } while (0) would succeed. The former would
|> also save a few keystrokes.
Try this and watch your compiler complaining:
#define foo() { }
#define bar() do { } while (0)
void mumble ()
{
if (1) foo(); else bar();
if (2) bar(); else foo();
}
Andreas.
-- Andreas Schwab "And now for something SuSE Labs completely different." Andreas.Schwab@suse.de SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/