登录
首页 > 手机评测 > Linux 6.19或迎大动作:支持Microsoft C 扩展,代码写法要变!

Linux 6.19或迎大动作:支持Microsoft C 扩展,代码写法要变!

发布时间:2025-11-13 15:33:13

近日,Linux 内核社区正酝酿一场引人关注的改动:在即将发布的 Linux 6.19 版本中,内核构建系统可能会默认启用 -fms‑extensions 参数,也就是允许使用 Microsoft C 扩展。

内核开发者认为,这次改动可能让代码写起来更顺手、更美观,同时也能提升跨平台兼容性。据外媒 Phoronix 报道,Linux 之父 Linus Torvalds 对此变动暂时没有发表反对意见。

 

图片

Microsoft C 扩展” 是什么?

从技术上来说,这次变动的核心是让内核构建系统统一开启 -fms-extensions 编译选项。

-fms-extensions 是 GCC 和 Clang 都支持的选项,用来启用微软 Visual C/C++ 编译器的一些非标准语法。其中之一,就是允许在结构体(struct)或联合体(union)中匿名嵌套其他类型。对内核开发者来说,这意味着代码可以写得更简洁、更优雅——在某些场景下甚至还能节省一点栈空间。

过去多年,社区曾多次有人提议默认启用 -fms-extensions,但由于坚持标准 C、担心可移植性问题以及核心开发者意见不一,这些补丁一直没有被采纳。

目前,启用这一特性的两个补丁已经合入 kbuild-next 分支——这是负责内核构建系统的子系统。这意味着社区态度更务实——如果核心开发者和 Linus Torvalds 不反对,这项改动很可能会在 Linux 6.19 合并窗口正式启用。

 

图片

补丁细节

在提交相关补丁时,开发者 Rasmus Villemoes 在主题为「Kbuild: enable -fms-extensions」的邮件列表中写道:

“有时启用 -fms-extensions 能让代码看起来更美观。但每次有人提议启用 -fms-extensions 时,总有人会说‘不用它也能写代码,而且也不算太糟’,不足以为了这一点新增一个编译标志。

每个用例单独看确实如此,但这也是一种‘鸡生蛋蛋生鸡’的局面。

但正如 Linus 所说,如果我们咬咬牙一次性启用它,那么以后需要用时就能直接用,不必每次都单独为例子辩解。

Copyright 2018-2025 速推科技 版权所有  京ICP备19012569号-1