title: What's the point of a PROTOTYPE macro that merely expands to its arguments?
body: <p>I have a header file which contains</p>
  
  <pre><code>#define PROTOTYPE(s) s
  </code></pre>
  
  <p>What is the point of that? Seems like it would just replace the input with itself.</p>
  
  <p>There are TONS of other directives around it, but the only one that appears to have any bearing just checked if it's defined: <code>#ifndef PROTOTYPE</code>. I found some places in HDF4 header files that do this: <code>#define PROTOTYPE</code>. So, none of that really clear up my question. Still seems pretty useless.</p>
  
  <p>Here's how it's used: </p>
  
  <pre><code>CS_RETCODE clientmsg_callback PROTOTYPE((
  CS_CONTEXT * context,
  CS_CONNECTION *connection,
  CS_CLIENTMSG *clientmsg));
  </code></pre>
  
  <p>This is part of a project which uses Sybase Open Client. clientmsg_callback is later used here:</p>
  
  <pre><code>ct_callback(context, NULL, CS_SET, CS_CLIENTMSG_CB,
                    (CS_VOID *)clientmsg_callback);
  </code></pre>
  
  <p>I'm going off of a sample program from here:</p>
  
  <p><a href="http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc35570.1570/html/clcprgde/clcprgde10.htm" rel="noreferrer">http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc35570.1570/html/clcprgde/clcprgde10.htm</a></p>
  
  <p>clientmsg_callback is implemented later. I think the sample was originally written with C in mind, instead of C++. Perhaps that has something to do with it?</p>