title: Wrong char output for Generic print C
body: <p>I have a macro with _Generic for printing</p>
  <pre><code>#define PRINT(data)                                 \
          _Generic((data),                            \
          char:print_char)(data)
  
  </code></pre>
  <p>and this is the implementation for print_char</p>
  <pre><code>void print_char(char data){
      printf(&quot;%c\n&quot;,data);
  }
  </code></pre>
  <p>The problem is that when I call PRINT('t') for example it prints 116 instead of t, the solution I found was to add (char) in PRINT statemen like PRINT((char)'t').
  The question is how can I print the char without the cast?</p>