Tôi hiện đang phát triển một ứng dụng C đa nền tảng. Có macro trình biên dịch nào được xác định chỉ trong khi biên dịch trên Windows, vì vậy tôi có thể #ifdef
một số #includes cụ thể của Windows không?Xác định liệu biên dịch trên Windows hoặc hệ thống khác
ví dụ điển hình là lựa chọn giữa WinSock và ổ cắm Berkeley tiêu đề:
#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
Vì vậy, điều tôi đang tìm kiếm là một cái gì đó như thế _WINDOWS vĩ mô.
Và những gì trong trường hợp của Windows 64-bit? Tôi đoán _WIN32 được định nghĩa chỉ trên các hệ thống 32 bit, phải không? – NumberFour
32 thực sự ở đó để tách nó khỏi phiên bản Windows 16 bit cũ. Việc loại bỏ định nghĩa đó trong Win64 sẽ phá vỡ quá nhiều thứ, vì vậy sẽ ít rắc rối hơn khi bỏ nó vào. –