0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C 语言的下一个 ISO标准将会是 C2x ?

黄工的嵌入式技术圈 来源:黄工的嵌入式技术圈 作者:黄工的嵌入式技术 2020-02-27 16:40 次阅读

前不久分享了关于C语言的文章:C语言依然位居榜单前列,依然值得程序员学习。 一直觉得C语言是“神”一样的编程语言,这么多年可以稳稳的排在前列(当然,能排上名,自然有它的道理)。 一、前言之前,《现代C》的作者Jens Gustedt透露,C委员会现已开始构建下一个C标准的真正修订版,被称为“C2x”。其中“x”应该代表新标准出现的年份数字,预计将于 2022 年完成的 C2x 标准。 同时,Gustedt还透露:我们会定期发布工作草案,其中包括目前已添加的更改。除了C17这是一个纯粹的bug修复版本,这样的工作文件引入了规范性的变化并且是公开的。 其中,整理了一些草案:

其中,提到其目的是促进可移植性、可靠性、可维护性等。 草案具体内容,可以参看Gustedt的博客:

https://gustedt.wordpress.com/2018/11/12/c2x


二、即将推出的C2x主要目标是什么?

Gustedt回答:

新 C 标准的制定主要是为了完善一些目标。

关键点是这个标准旨在描述现有的实践,而不是发明本身。只要有可能,发明应该在现有的 C 编译器中进行,或者来自其他编程语言(事实上主要是 C++)。

也就是说,还有很多工作将清理现有的特性,追求语义上的模糊性,并添加可能有助于日常编码的小特性。

三、语言方面的变化有哪些是值得我们期待的?

Gustedt回答:

在语言和库级别,程序员直接可见的部分目前还没有太多定论。我的期望是我们将看到一些集成到 C 中的 C++ 特性,例如属性、以某种形式编译所有数据类型的时间常量,以及初始化类型(也就是 C++ 的 auto feature)。

此外,还有一个 C++ 的协调计划,用于新的调用约定,它可以取代我们从一开始就一直在使用的错误码返回约定。

但是 C 标准还有另一个重要的作用,因为它基本上为我们的计算机架构和其他编程语言构建设置了机器模型。C 标准将其称为“抽象状态机”。作为一个重要的特性,我们已经投票将最新的 IEEE 浮点规范集成到 C 标准中。

我们还组建了一个工作组来修改“内存模型”,事关程序员可能会或者可能不会直接与计算机内存中数据裸表示交互、这可能将如何影响一些可能的优化以及这种字节和位的调整将如何变得安全可靠。

这项工作遵循的是 Peter Sewell(等人)关于“指针来源”的论文,我们希望我们最终得到的内存模型可以广泛适用于 C 系统软件和应用程序的多样性。


四、C 特别擅长的用途和应用领域?Gustedt回答:C 最大的优点是效率、可移植性和稳定性。只要这些是软件开发当中存在的主要问题,那么 C 就应该被视为首选语言。 本文参考:

https://www.infoq.cn/article/lG_76LvIfjol2V3lUHl5

参考Gustedt的博客:

https://gustedt.wordpress.com/2018/11/12/c2x

可以看得出来,C语言还在大力发展,附上一张2019年8月,最新 TIOBE 编程语言排行榜(C语言仅次于JAVA):

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128432
  • ISO
    ISO
    +关注

    关注

    0

    文章

    234

    浏览量

    39292
  • C2xx
    +关注

    关注

    0

    文章

    2

    浏览量

    6498
收藏 人收藏

    评论

    相关推荐

    晶体管的下一个25年

    晶体管的下一个25年
    的头像 发表于 11-27 17:08 301次阅读
    晶体管的<b class='flag-5'>下一个</b>25年

    下一个十年谁会是智能手机战场上的核芯

    电子发烧友网站提供《下一个十年谁会是智能手机战场上的核芯.doc》资料免费下载
    发表于 11-03 10:35 0次下载
    <b class='flag-5'>下一个</b>十年谁<b class='flag-5'>会是</b>智能手机战场上的核芯

    C语言中怎么定义不定长度的数组?

    C语言中怎么定义不定长度的数组
    发表于 10-09 07:40

    C16x中的堆栈

    80C166的基本设计故意偏向于允许像C这样的结构化语言比在较老的CPU上更高效地运行。 最有用的指令集功能之是提供16额外的堆栈指针。
    发表于 09-04 07:05

    C语言基础知识(

    整型变量的示例: 2. 变量变量是用于保存和操作数据的内存区域。在C语言中,我们需要在使用变量之前先声明它们,并指定变量的数据类型。例如,下面是声明和初始化
    发表于 08-10 15:16

    C语言基础知识(

    整型变量的示例: 2. 变量变量是用于保存和操作数据的内存区域。在C语言中,我们需要在使用变量之前先声明它们,并指定变量的数据类型。例如,下面是声明和初始化
    发表于 08-07 16:51

    下一代硅光子技术会是什么样子?

    下一代硅光子技术会是什么样子?
    的头像 发表于 07-05 14:48 365次阅读
    <b class='flag-5'>下一</b>代硅光子技术<b class='flag-5'>会是</b>什么样子?

    链表的函数(2)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:48:08

    链表(2)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:47:19

    联合(2)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:46:21

    结构类型(2)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:43:44

    结构中的结构(2)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:41:18

    LLVM clang 公开 -std=c++23

    (technical complete state),LLVM 开发人员已将其 C++2b重命名为 C++23。这类似于过去,在语言更新准备就绪并使用以前的 ISO
    发表于 05-27 11:29