如何在 C 中定义特定版本的 macOS

How to define a specific version of macOS in C

我们可以使用#ifdef __linux_#ifdef __APPLE__来识别用户的操作系统。但是我们可以定义不同版本的操作系统吗?例如在 macos Big Sur 和 macos Monterey 之间。

为了寻找答案,我遇到了 Availability.h 库,但我不太明白如何找到 OS

的正确版本

您可以在 C/C++ 代码中在运行时测试 OS,如下所示:

if (__builtin_available( macOS 12.0, * ))
{
    // Monterey or later
}
else
{
    // before Monterey
}

当然你得想想macOS13出来后会发生什么。