#ifndef Macro
Si la macro no ha sido definida se incluirá el fragmento de código desde ese punto hasta encontrar un #else, #elif o #endif. En caso de que la macro sí haya sido definida se procesaría el #else o el #elif correspondiente.
Para más información y ejemplos examine la ayuda sobre directivas de compilación condicional del preprocesador.