title: Rename variable in C preprocessor
body: <p>I have some existing code that uses an <code>enum</code> instead of a function pointer for callbacks. The callback is called using a table: <code>callback_table[enum]</code>.</p>
  
  <p>The enums are named with an <code>enum_ prefix</code> and the corresponding function is named with a <code>func_ prefix</code>.</p>
  
  <p>So, function calls involving callbacks look like this: </p>
  
  <pre><code>foo (param, enum_name);
  </code></pre>
  
  <p>While browsing code I have to take the name part and prefix func_ instead of just doing a "Jump to definition".</p>
  
  <p>I would like to have a macro so that my code looks like this:</p>
  
  <pre><code>foo (param, f2e(func_name));
  </code></pre>
  
  <p>so that I can keep the existing code unchanged and still be able to do a "Jump to definition".</p>
  
  <p>Is it possible to have such a macro? The simplest solution would be to omit <code>func_</code> which means that f2e simple attaches the <code>enum_ prefix</code>, but I would prefer a solution where I can still have <code>func_</code>. Is this possible?</p>