Mailing List ArchiveSupport open source code!
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]Re: tlug: GCC compiler question
- To: tlug@example.com
- Subject: Re: tlug: GCC compiler question
- From: Darren Cook <darren@example.com>
- Date: Mon, 19 Oct 1998 11:13:24
- Content-Type: text/plain; charset="us-ascii"
- In-Reply-To: <199810190157.KAA23932@example.com>
- References: <Your message of "Sat, 17 Oct 1998 22:52:48 JST." <3628A130.90268CF3@example.com>
- Reply-To: tlug@example.com
- Sender: owner-tlug@example.com
>#define spin_lock_init(x) do { (x)->lock = 0; } while(0) > >If it were used in the following way: > >if (true) > spin_lock_init (x); > >The semi-colon following "spin_lock_init (x);" will be consumed as >part of the macro expansion as: > >if (true) > do { (x)->lock = 0; } while(0); > > >If we were to declare the macro as follows: > >#define spin_lock_init(x) { (x)->lock = 0; } > >Then this would expand to > >if (true) > { (x)->lock = 0; } Wouldn't it expand to this? if (true) { (x)->lock = 0; }; >...and not be syntactically correct, this will cause a compile error as >no semi-colon is present. Where is the syntax error? >#define m(A) if(A){exp1; exp2;} > >You can see the problems with the semi-colon when this is expanded, >we need to wrap it in a "do{ ... } while(0)". Doesn't "m(myptr);" expand to this? if(myptr){exp1; exp2;}; Am I missing something obvious here? Darren --------------------------------------------------------------- Next Nomikai: 20 November, 19:30 Tengu TokyoEkiMae 03-3275-3691 Next Meeting: 12 December, 12:30 Tokyo Station Yaesu central gate --------------------------------------------------------------- Sponsor: PHT, makers of TurboLinux http://www.pht.co.jp
- Follow-Ups:
- Re: tlug: GCC compiler question
- From: Peter Linsley <plinsley@example.com>
- References:
- Re: tlug: GCC compiler question
- From: Peter Linsley <plinsley@example.com>
Home | Main Index | Thread Index
- Prev by Date: Re: tlug: GCC compiler question
- Next by Date: Re: Books (was Re: tlug: TLUG Finances)
- Prev by thread: Re: tlug: GCC compiler question
- Next by thread: Re: tlug: GCC compiler question
- Index(es):
Home Page Mailing List Linux and Japan TLUG Members Links