title: Preprocessor Directive: #elif not defined?
body: <p>Is there a preprocessor directive that checks whether a constant is not defined. I am aware of the <code>#ifndef</code> directive but I am also looking for a <code>#elif not defined</code> directive. Does <code>#elif not defined</code> exist?</p>
  
  <p>This is how I would use it:</p>
  
  <pre><code>#define REGISTER_CUSTOM_CALLBACK_FUNCTION(callbackFunctName) \
      #ifndef CUSTOM_CALLBACK_1 \
          #define CUSTOM_CALLBACK_1 \
          FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
      #elif not defined CUSTOM_CALLBACK_2 \
          #define CUSTOM_CALLBACK_2  \
          FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
      #elif not not defined CUSTOM_CALLBACK_3 \
          #define CUSTOM_CALLBACK_3  \
          FORWARD_DECLARE_CALLBACK_FUNCTION(callbackFunctName) \
      #endif
  </code></pre>