Pergunta

Eu procurei o site, mas não encontrou a resposta que eu estava procurando por isso aqui é uma pergunta muito rápida.

Eu estou tentando fazer algo assim:

#ifdef _WIN32 || _WIN64
     #include <conio.h>
#endif

Como posso fazer uma coisa dessas? Eu sei que _WIN32 está definido para 32 e 64 bits do Windows para que eu ficaria bem com qualquer um para a detecção de janelas. Estou mais interessado em saber se eu posso usar operadores lógicos como aquele com as directivas de pré-processador, e se sim como, uma vez que o acima não funciona.

Compilando com gcc I get:

aviso:. Fichas extras no final da directiva #ifdef, e que basicamente só tem o primeiro MACRO e ignora o resto

Foi útil?

Solução

Tente:

#if defined(_WIN32) || defined(_WIN64)
// do stuff
#endif

O definido macro testa se um nome está definido e permite-lhe aplicar operadores lógicos para o resultado.

Outras dicas

Você deve usar #if e operador especial defined

Eu acho que deveria ser possível desta maneira:

#if defined block1 || defined block2 /*or any other boolean operator*/
   /*Code*/
#endif

Mais informações aqui

Use definido:

#if defined(A) || defined(B)
    #include <whatever.h>
#endif
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top