title: gcc Stringification of expression with "%" sign
body: <p>I`m trying to compile the following program</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  #define __stringify_1(x...) #x
  #define __stringify(x...)   __stringify_1(x)
  
  #define FOO(expression)\
  printf("prefix" __stringify(expression))
  
  int main(int argc, char **argv)
  {
     FOO(10 % 4); // &lt;-- This is a problematic one 
     FOO(10 == 4); 
  }
  </code></pre>
  
  <p>This yeilds a warning on compilation:
  warning: conversion lacks type at end of format [-Wformat=]</p>
  
  <p>The reason for this warning is that expression is actually expaneded to 
  printf("prefix" "10 % 4"), hence compiler expects a "formatter". Is there any solution to pass such expressions to macro without getting a warning ?</p>
  
  <p>Thanks</p>