Actual output is <br><br>foo 20<br><br>the operator <tt>#</tt> causes the parameter to be replaced by a string literal <br><br>so mod(foo) becomes &quot;foo&quot;<br><br>and the xmod(foo)  uses the value of foo which gives &quot;20&quot;<br>
<br>Mike<br><br><br><br><div class="gmail_quote">On Thu, Sep 22, 2011 at 2:39 PM, Yani Dubin <span dir="ltr">&lt;<a href="mailto:yani.dubin@gmail.com">yani.dubin@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I would assume it printed &quot;20 20&quot;. But then that seems too obvious and<br>
I must be missing some sort of tricky business around preprocessor<br>
operator precedence causing something funky?<br>
<div><div></div><div class="h5"><br>
On Fri, Sep 23, 2011 at 9:12 AM, Andre Renaud &lt;<a href="mailto:andre@bluewatersys.com">andre@bluewatersys.com</a>&gt; wrote:<br>
&gt; Unfortunately, as I don&#39;t tend to attend the local meetings I won&#39;t be<br>
&gt; able to back this up with a Chocolate Fish. However, who can give the<br>
&gt; correct output for the following C program, with an explanation for why.<br>
&gt;<br>
&gt; #include &lt;stdio.h&gt;<br>
&gt; #include &lt;string.h&gt;<br>
&gt; #define xmod(s) mod(s)<br>
&gt; #define mod(s) #s<br>
&gt; #define foo 20<br>
&gt;<br>
&gt; int main(int argc, char *argv[])<br>
&gt; {<br>
&gt;  char buffer[20], buffer2[20];<br>
&gt;<br>
&gt;  strcpy(buffer, mod(foo));<br>
&gt;  strcpy(buffer2, xmod(foo));<br>
&gt;<br>
&gt;  printf(&quot;%s %s\n&quot;, buffer, buffer2);<br>
&gt;  return 0;<br>
&gt; }<br>
&gt;<br>
&gt; Regards,<br>
&gt; Andre<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Chchrobotics mailing list <a href="mailto:Chchrobotics@lists.linuxnut.co.nz">Chchrobotics@lists.linuxnut.co.nz</a><br>
&gt; <a href="http://lists.ourshack.com/mailman/listinfo/chchrobotics" target="_blank">http://lists.ourshack.com/mailman/listinfo/chchrobotics</a><br>
&gt; Mail Archives: <a href="http://lists.ourshack.com/pipermail/chchrobotics/" target="_blank">http://lists.ourshack.com/pipermail/chchrobotics/</a><br>
&gt; Web site: <a href="http://kiwibots.org" target="_blank">http://kiwibots.org</a><br>
&gt; Meetings 3rd Monday each month at Tait Radio Communications, 175 Roydvale Ave, 6.30pm<br>
&gt;<br>
&gt; When replying, please edit your Subject line to reflect new content.<br>
&gt;<br>
<br>
_______________________________________________<br>
Chchrobotics mailing list <a href="mailto:Chchrobotics@lists.linuxnut.co.nz">Chchrobotics@lists.linuxnut.co.nz</a><br>
<a href="http://lists.ourshack.com/mailman/listinfo/chchrobotics" target="_blank">http://lists.ourshack.com/mailman/listinfo/chchrobotics</a><br>
Mail Archives: <a href="http://lists.ourshack.com/pipermail/chchrobotics/" target="_blank">http://lists.ourshack.com/pipermail/chchrobotics/</a><br>
Web site: <a href="http://kiwibots.org" target="_blank">http://kiwibots.org</a><br>
Meetings 3rd Monday each month at Tait Radio Communications, 175 Roydvale Ave, 6.30pm<br>
<br>
When replying, please edit your Subject line to reflect new content.<br>
</div></div></blockquote></div><br>