title: Strange error with #define in c
body: <p>I know that #define replaced before the compiling to real values. so why the first code here compile with no error, and the 2nd not?</p>
  
  <p>the 1st;</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  int main()
  {
     printf("bc");
     return 0;
  }
  </code></pre>
  
  <p>the 2nd(not working);</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #define Str "bc";
  int main()
  {
     printf(Str);
     return 0;
  }
  
  error: expected ')' before ';' token
  </code></pre>
  
  <p>thank you for the answers, and sorry about my poor English...</p>