On Wed, 2005-09-14 at 18:16 -0400, Tyler Trafford wrote:
> Something from the driver modules I've been wondering about:
>
> #define WM8775_DEBUG(args...) \
> do { \
> if (debug) \
> printk(KERN_INFO "wm8775 debug: " args); \
> } while (0)
>
> Does the 'loop' provide some optimization that I can't see?It's a common idiom that ensures that the whole lot is a single C statement. There's a good explanation towards the end of http://www.kernelnewbies.org/faq/#dowhile I was thinking that this case might be too simple to warrant it but: if (something) WM8775_DEBUG("blah"); else some_other_action(); has an ambiguous else if you don't use the do while. Ian. -- Ian Campbell ASCII a stupid question, you get an EBCDIC answer.
signature.asc
Description: This is a digitally signed message part
