c语言与64位版本不兼容_C语言更新将向后兼容性放在首位

c语言与64位版本不兼容

现在可以查阅 C编程语言的下一个修订版的标准工作草案(现称为“ C2x”)。

迄今为止,批准用于C2x的大多数更改都没有涉及添加新功能,而是阐明和完善了C在不同的实现中以及与它的更老的C ++有关的行为。 对改进的强调与对C11和最新的C17的先前修订是如何进行的一致。

[Git要点: Git版本控制入门 Git和GitHub的20个基本指针 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

C2x宪章所述 ,该计划强烈强调保持该语言的未来版本与现有C代码的大部分兼容,并避免(尽管不完全排除)“安静的更改”或“导致工作程序无法正常运行的更改”。无需另行通知即可进行其他工作。”

监督C标准(ISO / IEC 9899)制定的工作组WG14到目前为止已正式批准仅对C17标准的语言进行少量更改。 迄今为止接受的一些最显着的更改:

  • restrict关键字的说明。 restrict关键字用于优化,通知编译器该内存中的给定对象只能由该指针访问。 在C2x中,将有更详细的示例说明应如何restrict行为,从而更好地确保编译器最终不会进行不安全或不必要的优化。
  • 使static_assert在C中的行为与在C ++中的行为相同。 在C和C ++中都可以找到static_assert声明,以确保给定的常量表达式在编译时有效,但是在两种语言中实现的方式有所不同。 进行此更改后,C2x版本的行为将与C ++版本相同,从而使在各种语言之间共享标头代码以及在C和C ++之间进行转换变得更加容易。
  • 工会行为的更好定义。 当涉及匿名联合时,C的不同实现具有不同的行为,这是C11中添加的功能。 C2x阐明了它是如何工作的,因此它不依赖于实现。

其他变化包括如何在pow()处理被零除的情况, 浮点的评估格式以及有关处理宽字符编码转换的更多说明

C是许多流行软件项目(例如Linux内核)的基础,并且它仍然是一种广泛使用的语言, 目前在Tiobe索引中排名第二 。 它的简单性使其成为在裸机上或接近裸机运行的软件应用程序的常见选择,但是开发人员必须在C语言上格外小心,而不是像Python这样的高级语言,以确保正确地管理内存,这很容易找到最常见的问题。在C程序中。

C标准的先前修订版增加了有助于内存管理的功能,包括“附件K”边界检查功能。 但是,表C2x上的一项建议是弃用或删除附件K API ,因为它们的现场实现很大程度上是不完整,不符合规范且不可移植的。 其他建议包括用第三方边界检查系统(如Valgrind或Intel Pointer Checker)替换这些API, 对内存模型进行改进 ,或添加执行内存对象边界检查的新方法。

除了对官方C标准的修订之外,其他项目也冒出泡沫来提供更好的C语言编写方法。Microsoft的Checked C扩展添加了检查功能,以防止内存处理中的许多常见错误。 C标准的核心撰稿人Jens Gustedt有他自己的Modular C提议,该提议为C提供了类似于在高级语言中找到的模块系统。

当前的C2x路线图至少还需要两年的时间才能完成提案。 WG14的目标是“到2021年底修订标准,发布日期为2022”。

翻译自: https://www.infoworld.com/article/3319748/c-language-update-puts-backward-compatibility-first.html

c语言与64位版本不兼容

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值