我需要我的代码根据编译它的操作系统来做不同的事情。我正在寻找这样的东西:
#ifdef OSisWindows // do Windows-specific stuff #else // do Unix-specific stuff #endif
有没有办法做到这一点?有没有更好的方法来做同样的事情?
操作系统的 预定义宏 站点有一个非常完整的检查列表。以下是其中一些,并带有指向它们所在位置的链接:
_WIN3232 位和 64 _WIN64位 仅 64 位 __CYGWIN__
_WIN32
_WIN64
__CYGWIN__
有关使用此检查的一些陷阱
unix __unix __unix__
unix
__unix
__unix__
__APPLE__也用于经典 __MACH__
__APPLE__
__MACH__
两者都被定义;检查任何一个都应该工作。
__linux__ linux 过时(不符合 POSIX) __linux过时(不符合 POSIX)
__linux__
linux
__linux
versions.html)
__FreeBSD__
__ANDROID__