linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Coding technique question
  2003-06-16 20:03 Coding technique question Timothy Miller
@ 2003-06-16 19:56 ` Jeff Garzik
  2003-06-16 20:05 ` Aschwin Marsman
  1 sibling, 0 replies; 5+ messages in thread
From: Jeff Garzik @ 2003-06-16 19:56 UTC (permalink / raw)
  To: Timothy Miller; +Cc: Linux Kernel Mailing List

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




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Coding technique question
@ 2003-06-16 20:03 Timothy Miller
  2003-06-16 19:56 ` Jeff Garzik
  2003-06-16 20:05 ` Aschwin Marsman
  0 siblings, 2 replies; 5+ messages in thread
From: Timothy Miller @ 2003-06-16 20:03 UTC (permalink / raw)
  To: Linux Kernel Mailing List

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
     ....
}




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Coding technique question
  2003-06-16 20:03 Coding technique question Timothy Miller
  2003-06-16 19:56 ` Jeff Garzik
@ 2003-06-16 20:05 ` Aschwin Marsman
  2003-06-16 20:23   ` Timothy Miller
  2003-06-19  2:16   ` david nicol
  1 sibling, 2 replies; 5+ messages in thread
From: Aschwin Marsman @ 2003-06-16 20:05 UTC (permalink / raw)
  To: Timothy Miller; +Cc: Linux Kernel Mailing List

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
a.marsman@aYniK.com              http://www.aYniK.com


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Coding technique question
  2003-06-16 20:05 ` Aschwin Marsman
@ 2003-06-16 20:23   ` Timothy Miller
  2003-06-19  2:16   ` david nicol
  1 sibling, 0 replies; 5+ messages in thread
From: Timothy Miller @ 2003-06-16 20:23 UTC (permalink / raw)
  To: Aschwin Marsman; +Cc: Linux Kernel Mailing List

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
> a.marsman@aYniK.com              http://www.aYniK.com
> 
> 
> 



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Coding technique question
  2003-06-16 20:05 ` Aschwin Marsman
  2003-06-16 20:23   ` Timothy Miller
@ 2003-06-19  2:16   ` david nicol
  1 sibling, 0 replies; 5+ messages in thread
From: david nicol @ 2003-06-19  2:16 UTC (permalink / raw)
  To: Aschwin Marsman; +Cc: Timothy Miller, Linux Kernel Mailing List


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


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2003-06-19  2:02 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-16 20:03 Coding technique question Timothy Miller
2003-06-16 19:56 ` Jeff Garzik
2003-06-16 20:05 ` Aschwin Marsman
2003-06-16 20:23   ` Timothy Miller
2003-06-19  2:16   ` david nicol

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).