title: Token Pasting Confusion
body: <p>all</p>
  
  <p>My codes like this:</p>
  
  <pre><code>#define TTP_ROUTE_TABLE_ENTRY_INC(table)    \
  static inline void  \
  ttp_route_##table_inc(void)   \
  {   \
      cur_l3_##table_table_entries++;   \
  }
  TTP_ROUTE_TABLE_ENTRY_INC(ipv4_host)
  TTP_ROUTE_TABLE_ENTRY_INC(ipv4_route)
  TTP_ROUTE_TABLE_ENTRY_INC(ipv6_host)
  TTP_ROUTE_TABLE_ENTRY_INC(ipv6_route)
  #undef TTP_ROUTE_TABLE_ENTRY_INC
  </code></pre>
  
  <p>but gcc warning:</p>
  
  <pre><code>lib/ttp-route-table.c:130:1: error: redefinition of 'ttp_route_table_inc'
  </code></pre>
  
  <p>So I think GCC preprocess ##table into table, actually I want </p>
  
  <pre><code>TTP_ROUTE_TABLE_ENTRY_INC(ipv4_host)
  </code></pre>
  
  <p>will be translate into this:</p>
  
  <pre><code>static inline void  \
  ttp_route_ipv4_host_inc(void)   \
  {   \
      cur_l3_ipv4_host_table_entries++;   \
  }
  </code></pre>
  
  <p>So I don't know what's wrong with my codes. Thank you for your help.</p>