Histórico da Página
...
Define o nome do identificador que será testado para comprovar a sua inexistência.
Utilização
A diretiva #ifndef ... #endif permite a realização de compilações condicionais. A compilação condicional permite que um determinado trecho de código-fonte seja ou não compilado, dependendo da inexistência ou não de um identificador. Um identificador pode ser definido pela diretiva #define.
...
Se a cláusula #else não for especificada e o identificador não existir, o trecho de código entre o #ifndef e o #endif será compilado. Se o identificador existir, esse trecho de código não será compilado.
Dicas
A compilação condicional é útil principalmente quando for necessária a manutenção de várias versões diferentes do mesmo programa. Para cada versão poderá ser compilado um determinado trecho de código diferente, de acordo com os identificadores que forem especificados.
...