Thanks PerFnurt,
my problem is solved, I was confused by the use of macros.
But I know why I am defining such a macro!

I want to emulate the 'old' mecanism of Eiffel.
For example consider a basic Counter class:
<pre>
<tt>
<b><font color=#000080>#ifdef</font></b> DBC
<b><font color=#000080># define</font></b> <b><font color=#000000>old</font></b><font color=#990000>(</font>decl<font color=#990000>)</font> decl
<b><font color=#000080># define</font></b> <b><font color=#000000>ensure</font></b><font color=#990000>(</font>expr<font color=#990000>)</font> <b><font color=#000000>assert</font></b> <font color=#990000>(</font>expr<font color=#990000>)</font>
<b><font color=#000080>#else
</font></b>
<b><font color=#000080># define</font></b> <b><font color=#000000>old</font></b><font color=#990000>(</font>decl<font color=#990000>)</font>
<b><font color=#000080># define</font></b> <b><font color=#000000>ensure</font></b><font color=#990000>(</font>expr<font color=#990000>)</font>
<b><font color=#000080>#endif
</font></b>
<b><font color=#0000FF>class</font></b> Counter
<font color=#FF0000>{</font>
<b><font color=#0000FF>public</font></b><font color=#990000>:</font>
<b><font color=#000000>Counter</font></b> <font color=#990000>(</font><font color=#009900>int</font> init<font color=#990000>)</font> <font color=#990000>:</font>
<b><font color=#000000>_counter</font></b> <font color=#990000>(</font>init<font color=#990000>)</font>
<font color=#FF0000>{</font>
<font color=#FF0000>}</font>
<font color=#990000>~</font><b><font color=#000000>Counter</font></b> <font color=#990000>(</font><font color=#990000>)</font><font color=#990000>;</font>
<font color=#009900>int</font> <b><font color=#000000>inc_counter_by_one</font></b> <font color=#990000>(</font><font color=#990000>)</font>
<font color=#FF0000>{</font>
<b><font color=#000000>old</font></b> <font color=#990000>(</font><font color=#009900>int</font> old_counter <font color=#990000>=</font> _counter<font color=#990000>)</font><font color=#990000>;</font>
_counter<font color=#990000>+</font><font color=#990000>+</font><font color=#990000>;</font>
<b><font color=#000000>ensure</font></b> <font color=#990000>(</font>_counter <font color=#990000>=</font><font color=#990000>=</font> old_counter <font color=#990000>+</font> <font color=#993399>1</font><font color=#990000>)</font><font color=#990000>;</font>
<font color=#FF0000>}</font>
<b><font color=#0000FF>private</font></b><font color=#990000>:</font>
<font color=#009900>int</font> _counter<font color=#990000>;</font>
<font color=#FF0000>}</font><font color=#990000>;</font></tt>
</pre>
With this mecanism you can decorate the source code with pre and post-conditions, or you can easily get rid of it in a release compiled version.
Concerning your macro example, I never use conditional expressions! It leads to side-effects
--
Globos