Pergunta

Atualmente estou desenvolvendo uma plataforma cruzada C inscrição. Existe alguma macro do compilador que seja definida apenas durante a compilação no Windows, para que eu possa #ifdef Alguns #includes específicos do Windows?

Exemplo típico está selecionando entre os cabeçalhos Winsock e Berkeley Sockets:

#ifdef _WINDOWS
   #include <winsock.h>    
#else
   #include <sys/socket.h>
   #include <netinet/in.h>
   #include <sys/un.h>
   #include <arpa/inet.h>
   #include <netdb.h>
#endif

Então, o que estou procurando é algo assim _JANELAS macro.

Foi útil?

Solução

Sua melhor aposta é usar

_WIN32

Isso é garantido para ser definido Ao compilar para uma plataforma Windows de 32 ou 64 bits usando o compilador Visual C ++. Eu esperaria que outros compiladores também o definissem (o compilador Intel C ++ o define, assim como o Mingw GCC).

Outras dicas

_WIN32  

Definido para inscrições para Win32 e Win64. Sempre definido.

_WIN64  

Definido para inscrições para o Win64.

Fonte : Lista as macros predefinidas da ANSI C e Microsoft C ++ Implementation.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top