O que é compilação condicional?
Na programação de computador, a compilação condicional descreve a capacidade de um compilador de software ou processador de código-fonte de incluir ou ignorar certos comandos ou blocos de código com base em instruções específicas do idioma que não fazem parte tecnicamente da especificação principal da linguagem de programação. Os comandos usados para acionar a compilação condicional em um programa geralmente são chamados de diretrizes pré-processador, embora também possam ser conhecidas como diretivas do compilador, comentários condicionais ou definem condicionais. Dependendo do compilador ou do idioma usado, as diretivas condicionais podem ser variáveis ou macros definidos pelo usuário, ou também podem ser variáveis do sistema definidas pelo compilador ou pelo sistema operacional. A compilação condicional é freqüentemente usada para configurar um único conjunto de arquivos de código -fonte, para que possam ser compilados em ambientes diferentes ou sistemas operacionais sem precisar trocar ou alterar arquivos de origem.A ilatração pode variar de um idioma para outro, mas geralmente são macros ou outras expressões de meta-dados fora do escopo das variáveis normais do programa. Em idiomas como C, as variáveis geralmente são macros que são lidas por um pré-processador. Na maioria das vezes, as macros não são acessíveis pelo código -fonte do programa executável real, mesmo que existam nos mesmos arquivos de origem.
As diretivas usadas para testar as variáveis condicionais definidas são rudimentares e seguem a mesma lógica que uma instrução IF-then. Os testes básicos que podem ser realizados para compilação condicional são se um valor é definido, não definido ou, em alguns casos, se duas variáveis definidas são equivalentes. As próprias variáveis ou macros geralmente não têm valor de significância, porque o ato de defini -las é o que as diretivas estão verificando. Com alguns idiomas e compiladores, no entanto, tO valor de uma variável definida pode importar se forem avaliados para o estado booleano.
Quando um compilador encontra diretivas usadas para compilação condicional, as diretrizes são avaliadas para verificar se elas testam como verdadeiras ou falsas. Se verdadeiro, o código que está seguindo a diretiva é compilado normalmente; Caso contrário, o compilador ignorará completamente o código contido na diretiva. Isso é diferente de instruções lógicas condicionais dentro do próprio código do programa executável porque, mesmo que a lógica tenha um bloco de código que não possa ser executado, ela ainda será interpretada e compilada na maioria dos casos. Com as diretivas condicionais de pré-processador, o código de ignição nunca é incluído, interpretado ou compilado. Deve-se notar também que, uma vez que o pré-processador avalie todas as variáveis e diretrizes condicionais, elas não são compiladas com o restante do programa, porque se destinam apenas a fornecer orientação ao compilador.
A compilação condicional com mais frequência é usada to Incluir ou excluir o código específico para um sistema operacional ou ambiente específico. Isso significa que as bibliotecas que existem em um sistema operacional podem ser incluídas condicionalmente se as diretivas determinarem que o programa estiver sendo compilado sob esse sistema operacional. Como alternativa, as diretivas também podem ser usadas para incluir ou excluir código com base em variáveis definidas pelo usuário. Isso pode ser feito para que o código de depuração ou perfil não esteja incluído na versão final de um programa, ou assim, certos recursos podem ser ativados ou desativados sem precisar manter cópias separadas do código.