[linux-dvb] Re: [PATCH] LGDT3302 Frontend Driver

Peter Beutner p.beutner at gmx.net
Tue Jun 28 17:41:16 CEST 2005


Michael Krufky schrieb:
> Peter Beutner wrote:
> 
>> Ben Dooks schrieb:
>>
>>>> I dont see why the code you posted above will break with dprintk 
>>>> defined like this:
>>>> #define dprintk(args...) if (debug) printk(KERN_DEBUG "lgdt3302: " 
>>>> args)
>>>>
>>>> Imo:
>>>>
>>>> if(foo)
>>>>     if (debug) printk(KERN_DEBUG "lgdt3302: " args);
>>>> else
>>>>     bar();
>>>>
>>>> should work like intended.
>>>
>>>
>>>
>>>
>>> The else will be part of the if (debug), not the if (foo) as
>>> intended. This means that changing the dprintk macro would
>>> end up breaking a number of things. Best to avoid these problems
>>> in the first place.
>>>
>> I see. Thx for the explanation.
> 
> 
> Doesn't this cover all bases:
> 
>  #define dprintk(args...) { if (debug) printk(KERN_DEBUG "lgdt3302: " 
> args); }
> 
> ???
> 
No,
this would resolve to:

if(foo)
	{ if (debug) printk(KERN_DEBUG "lgdt3302: " args); };
else
	bar();

where gcc would complain about the semicolon before else
with a: syntax error before »else«.

CU
Peter




More information about the linux-dvb mailing list