Why do { // do something ; } while (0); ?

Adel Qodmani mpcadel at gmail.com
Thu Dec 13 04:02:49 EST 2012


On Thu, Dec 13, 2012 at 10:55 AM, Shraddha Kamat <sh2008ka at gmail.com> wrote:

> I notice
>
> do {
>    // do something 1 ;
>    // do something 2 ;
>    ...
> } while (0);
>
> being used everywhere in the kernel code
> I just can't guess of any use of this other
> than executing couple of C statements together ?
>
> Is there any special purpose of doing this ??
> Sorry of such a silly question - I am just trying
> to learn kernel hacking basics.
>
> -- Shraddha
>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


http://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for

This link gives you a pretty good answer.
The basic rational behind using such a construct is when you want to a
define a multi-line macro.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20121213/597afb94/attachment.html 


More information about the Kernelnewbies mailing list