Ich entwickle derzeit eine plattformübergreifende C Anwendung. Gibt es einen Compiler-Makro, der nur während der Kompilierung unter Windows definiert ist, so kann ich #ifdef
einige Windows-spezifische #includes?Ermitteln, ob Kompilieren unter Windows oder einem anderen System
Typisches Beispiel ist die Auswahl zwischen WinSock und Berkeley Sockets-Header:
#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
Also das, was ich bin auf der Suche nach so etwas wie diese ist _WINDOWS Makro.
Und was bei 64-Bit-Windows? Ich nehme an, _WIN32 ist nur auf 32-Bit-Systemen definiert, oder? – NumberFour
Die 32 ist wirklich da, um sie von alten 16-Bit-Versionen von Windows zu trennen. Das Entfernen dieser Definition in Win64 hätte zu viele Dinge kaputt gemacht, so dass es weniger mühsam war, sie zu verlassen. –