I believe I've seen this sort of thing done in the kernel:
do {
....
code
....
} while (0);
What I was wondering is how this is any different from:
{
....
code
....
}
On Mon, Jun 16, 2003 at 04:03:31PM -0400, Timothy Miller wrote:
> I believe I've seen this sort of thing done in the kernel:
>
> do {
> ....
> code
> ....
> } while (0);
>
>
> What I was wondering is how this is any different from:
>
> {
> ....
> code
> ....
> }
It's not... unless you're creating a function-like macro.
Jeff
On Mon, 16 Jun 2003, Timothy Miller wrote:
> I believe I've seen this sort of thing done in the kernel:
>
> do {
> ....
> code
> ....
> } while (0);
>
>
> What I was wondering is how this is any different from:
>
> {
> ....
> code
> ....
> }
See the Kernel Newbies FAQ at http://kernelnewbies.org/faq/
Q: "Why do a lot of #defines in the kernel use do { ... } while(0)? "
Best regards,
Aschwin Marsman
--
aYniK Software Solutions all You need is Knowledge
Bedrijvenpark Twente 305 NL-7602 KL Almelo - the Netherlands
P.O. box 134 NL-7600 AC Almelo - the Netherlands
[email protected] http://www.aYniK.com
Thank you for pointing this out to me. It's very interesting reading.
Aschwin Marsman wrote:
> On Mon, 16 Jun 2003, Timothy Miller wrote:
>
>
>>I believe I've seen this sort of thing done in the kernel:
>>
>>do {
>> ....
>> code
>> ....
>>} while (0);
>>
>>
>>What I was wondering is how this is any different from:
>>
>>{
>> ....
>> code
>> ....
>>}
>
>
> See the Kernel Newbies FAQ at http://kernelnewbies.org/faq/
> Q: "Why do a lot of #defines in the kernel use do { ... } while(0)? "
>
> Best regards,
>
> Aschwin Marsman
>
> --
> aYniK Software Solutions all You need is Knowledge
> Bedrijvenpark Twente 305 NL-7602 KL Almelo - the Netherlands
> P.O. box 134 NL-7600 AC Almelo - the Netherlands
> [email protected] http://www.aYniK.com
>
>
>
i-yi-yi.
/*
* Clarity concerning the
* do {
* ...
* } while (0);
* construct!
*/
#define MACRO_BLOCK_BEGIN do {
#define MACRO_BLOCK_END } while (0);
> See the Kernel Newbies FAQ at http://kernelnewbies.org/faq/
> Q: "Why do a lot of #defines in the kernel use do { ... } while(0)? "
>
> Best regards,
>
> Aschwin Marsman
--
David Nicol, independent consultant and contractor
Senator Orrin Hatch rewinds his DVDs