#if, #ifdef, #ifndef, #else, #elif, #endif
Estes seis comandos do preprocessador dão controlo de lógica simples ao compilador. Quando um ficheiro está a ser compilado, pode usar estes comandos para fazer com que certas linhas de código sejam incluídas ou não.
#if expression
Se o valor de expression for verdadeiro, então o código que imediatamente se segue o comando será compilado.
#ifdef macro
Se a macro foi definida pelo comando #define, então o código que imediatamente se segue ao comando será compilado.
#ifndef macro
Se a macro não foi definida pelo comando #define, então o código que imediatamente se segue ao comando será compilado.
Umas notas extra: o comando #elif é simplesmente uma horrível simplificação de “elseif” e funciona como é suposto. Também pode acrescentar um “defined” ou ”!defined” a seguir a um #if para obter funcionalidade adicional.
Aqui está um exemplo de todos eles:
#ifdef DEBUG cout << "This is the test version, i=" << i << endl; #else cout << "This is the production version!" << endl; #endif
Pode perceber como o segundo exemplo pode tornar a depuração (debugging) bastante mais simples em vez de inserir e remover um milhão de “cout”s no código.
Tópicos Relacionados: #define