您当前的位置:首页 >> 智能家居
智能家居

Linux 操作系统从 C89 迁移到 C11 新进展

发布时间:2025-10-01

首部|开源中都国

贤|白开水

API开发者 Arnd Bergmann 下达了一个新的安装程序来,并不需要 Linux API在自行决定 C11 的 GNU 方言区时选项可用“-std=gnu11”。这样一来,API将并不需要可用不错的 C99/C11 系统,而不是之外 C89。鉴于这一变更不太可能得到了 Linus Torvalds 的赞成,如果没有发现任何或多或少的弊端,它可能则会在下一个API合并窗口中都继续进行。

在一次安装程序来辩论中都,Linus 提出异议了将 C 的标准化版从 gnu89 改称 gnu99 的并不需要,它并不需要在 for() 循环中都可用变量单方面。虽然 C99、C11 和便的标准化引入了许多其他系统,但其中都仅有在 gnu89 中都也不太可能可以作为 GNU 扩展可用。

早些时候,GCC-5 曾竭力选项为 -std=gnu1,但失利了,因为当时这引起了对旧API的自行决定绑定容器的提醒。以前,gcc-5.1 是用于相结合API的总和API版,这不再是一个弊端。比如说地,"inline"函数的行为在 gnu89 和 gnu11 二者之间发生了变动,但这不太可能通过定义"inline"包括 originallyattributeoriginally((gnu_inline)) 来应对了,以便在不久前并不需要用 clang 来相结合。

只剩的一个小弊端是,在可用 -Werror 相结合时添加了一个针对负整数移位的 gcc 提醒,这发生在"make W=1"选项中都,以及API中都的三个API总是启用 -Werror,但目前只在 i915 API中都观察到。为了安全起见,在 Makefile 的任何 -Wextra 中都添加 -Wno-shift-negative-value。

Nathan Chancellor 报告了一个额外的 -Wdeclaration-after-statement 提醒,出以前 arm 的 system header 中都,这仍然需要一个应对方法有。

gnu99、gnu11、gnu1x 和 gnu17 二者之间的差异相当小,主要因素API从不启用的 -Wpedantic 行政级别的提醒。在这些版二者之间,gnu11 是被所有赞成的API版所赞成的不断更新版,尽管它只是 gcc-5 的选项版,而所有其他赞成的 gcc 或 clang 版都选项为 gnu1x/gnu17。

惨剧的因由为,Linux API活动中心日前曾辩论了是不是要为API采用现代 C 语言标准化。Linus 在辩论中都提出异议了从 C89 提升到 C99 的点子;并问到,API代码直至停留时间在 C89 的原因之一是API gcc 的旧版则会出现有趣的弊端,避免绑定程序来被严重破坏。但以前API立即的 GCC 略低于版不太可能减低到了 v5.1,那些 bug 可能不太可能不再相关。

最后确信,以意味著API的略低于版API立即和意味著代码的必要条件,他们实际上可以开始可用 C11 相结合API。Arnd Bergmann 提议直接适配到 C11 甚至 C2x。虽然他不确定 C11 是不是则会促使任何对API有用的新内容,但如果适配到 C17 或 C2x,则会严重破坏对 gcc-5/6/7 的赞成;因此适配到 C11 更容易实现,而且穿过太大API活动中心这不接受。

Linus 对该点子问到了赞同。在 Bergmann 确认此举行不通后,Linus 宣布将在下一个API版 v5.18 中都想法可用 C11 标准化。

探望病人买什么
妇科炎症
克痢痧香包怎么使用

上一篇: 「健康」经常吃泡饭的朋友们要注意了,这个问题很情况严重

下一篇: 澳元兑美元势头分析:汇价或继续走低

友情链接