title: Macro definition Error when compiling pcap
body: <p>I want to compile pcap but the macro definition can't pass:</p>
  
  <pre><code>#ifndef HAVE_STRLCPY
  #define strlcpy(x, y, z) \
      (strncpy((x), (y), (z)), \
       ((z) &lt;= 0 ? 0 : ((x)[(z) - 1] = '\0')), \
       strlen((y)))
  #endif
  </code></pre>
  
  <blockquote>
    <p>./pcap-int.h:353:11: error: expected declaration specifiers or '...'
    before '(' token</p>
  </blockquote>
  
  <p>I'm using the <em>mips-openwrt-gcc</em> compiler.</p>
  
  <p>It works fine with gcc.</p>
  
  <p>I'm not good at macro in C.</p>
  
  <p>Can somebody tell me how to fix this?</p>
  
  <p>Thanks in advance.</p>