title: How to does a variable argument Functioncall as macro define?
body: <p>Imagine, I have a debug source file,
  which is like this:</p>
  
  <pre><code>#if _OWN_DEBUG_LEVEL != 0
  
      void DebugLogMsg (DebugStruct_t *DebugStruct, size_t sizeID, char const *szFormat, ...);
  
  #else
  
      #define DebugLogMsg(_Expression1, _Expression2, _Expression3) ((void)0) 
  
  #endif
  </code></pre>
  
  <p>In this case I do not really care about the additional arguments to the function, but what about this case?</p>
  
  <pre><code>#if _OWN_DEBUG_LEVEL &gt; 0
  
      #undef DebugLogMsg1
  
      #define DebugLogMsg1(_Expression1, _Expression2, _Expression3) \ 
          DebugLogMsg(_Expression1, _Expression2, _Expression3)
  
  #endif
  </code></pre>
  
  <p>In this case I'm not quite sure... when I call the macro like this:</p>
  
  <pre><code>DebugLogMsg1(pointer, var, pointer, 1, 2, 3);
  </code></pre>
  
  <p>will <code>_Expression3</code> be treat as would it be <code>pointer, 1, 2, 3</code> or what would be the exact behaviour?</p>