小编典典

如何使用预处理器指令检查操作系统?

all

我需要我的代码根据编译它的操作系统来做不同的事情。我正在寻找这样的东西:

#ifdef OSisWindows
// do Windows-specific stuff
#else
// do Unix-specific stuff
#endif

有没有办法做到这一点?有没有更好的方法来做同样的事情?


阅读 71

收藏
2022-05-17

共1个答案

小编典典

操作系统的 预定义宏
站点有一个非常完整的检查列表。以下是其中一些,并带有指向它们所在位置的链接:

视窗

_WIN3232 位和 64
_WIN64位 仅 64 位
__CYGWIN__

Unix(Linux、*BSD,但不是 Mac OS X)

有关使用此检查的一些陷阱

unix
__unix
__unix__

Mac OS X

__APPLE__也用于经典
__MACH__

两者都被定义;检查任何一个都应该工作。

Linux

__linux__
linux 过时(不符合 POSIX)
__linux过时(不符合 POSIX)

[自由BSD](http://www.freebsd.org/doc/en/books/porters-handbook/porting-

versions.html)

__FreeBSD__

安卓

__ANDROID__

2022-05-17