gpt4 book ai didi

c++ - C++ 头文件中#ifdef __linux 和#ifdef __unix 的区别

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:19 24 4
gpt4 key购买 nike

我看过一些用于处理不同操作系统的样板头文件代码,如下所示:

#ifdef __WIN32
//windows
#elif __linux
//linux
#elif __unix
//all unix not captured above
#endif

如果 __unix 捕获所有未被 __linux 捕获的 unice,为什么不直接使用 __unix?我假设它是某种保护措施,例如“如果 __linux 还不够,请使用它”。

然而,必须有某种原因两者都被使用,而不是仅仅使用 __unix 来包罗万象(再一次,这个假设可能是错误的)。

这是怎么回事?

最佳答案

正如评论中所述,Unix 和 Linux 是两种不同的操作系统,尽管有大量软件兼容,但它们具有单独的许可结构。这意味着许多在 Linux 中可用的工具在 Unix 中不可用,反之亦然。这方面的一个例子是 Unix 的 ZFS 文件系统,它不能在与 Linux 相同的许可下分发,因此支持不包含在库存 Linux 内核中(尽管可以编译带有支持的自定义内核)。就特定样板而言,它很可能只是涵盖了所有基础,并且可用于利用每个操作系统上可用的特定工具。

关于c++ - C++ 头文件中#ifdef __linux 和#ifdef __unix 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com