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

    文章

    7597

    浏览量

    136117
  • ISO
    ISO
    +关注

    关注

    0

    文章

    253

    浏览量

    39547
  • C2xx
    +关注

    关注

    0

    文章

    2

    浏览量

    6521
收藏 人收藏

    评论

    相关推荐

    C语言中的socket编程基础

    。 Socket编程的基本步骤 在C语言中,socket编程的基本步骤如下: 步骤1:创建socket 步骤2:绑定socket到地址和
    的头像 发表于 11-01 16:51 233次阅读

    TMS320C28x汇编语言工具

    电子发烧友网站提供《TMS320C28x汇编语言工具.pdf》资料免费下载
    发表于 11-01 09:32 0次下载
    TMS320<b class='flag-5'>C28x</b>汇编<b class='flag-5'>语言</b>工具

    使用tSPI协议减少下一个多电机BLDC设计的布线

    电子发烧友网站提供《使用tSPI协议减少下一个多电机BLDC设计的布线.pdf》资料免费下载
    发表于 09-26 10:40 0次下载
    使用tSPI协议减少<b class='flag-5'>下一个</b>多电机BLDC设计的布线

    ISO7240CF-Q1,ISO7240C-Q1,ISO7241C-Q1,ISO7242C-Q1高速四通道数字隔离器数据表

    电子发烧友网站提供《ISO7240CF-Q1,ISO7240C-Q1,ISO7241C-Q1,ISO7242C-Q1高速四通道数字隔离器数据表.pdf》资料免费下载
    发表于 08-20 11:07 0次下载
    <b class='flag-5'>ISO</b>7240CF-Q1,<b class='flag-5'>ISO7240C</b>-Q1,<b class='flag-5'>ISO7241C</b>-Q1,<b class='flag-5'>ISO7242C</b>-Q1高速四通道数字隔离器数据表

    ISO7230C-Q1和ISO7231C-Q1三通道 2/1 25Mbps数字隔离器数据表

    电子发烧友网站提供《ISO7230C-Q1和ISO7231C-Q1三通道 2/1 25Mbps数字隔离器数据表.pdf》资料免费下载
    发表于 08-20 11:05 0次下载
    <b class='flag-5'>ISO7230C</b>-Q1和<b class='flag-5'>ISO7231C</b>-Q1三通道 <b class='flag-5'>2</b>/1 25Mbps数字隔离器数据表

    ISO154x低功耗双向I2C隔离器数据表

    电子发烧友网站提供《ISO154x低功耗双向I2C隔离器数据表.pdf》资料免费下载
    发表于 08-19 11:35 0次下载
    <b class='flag-5'>ISO154x</b>低功耗双向I<b class='flag-5'>2C</b>隔离器数据表

    ISO154x-Q1低功耗双向I2C隔离器数据表

    电子发烧友网站提供《ISO154x-Q1低功耗双向I2C隔离器数据表.pdf》资料免费下载
    发表于 08-19 11:33 0次下载
    <b class='flag-5'>ISO154x</b>-Q1低功耗双向I<b class='flag-5'>2C</b>隔离器数据表

    具有增强EMC和GPIO的ISO164x热插拔双向I2C隔离器数据表

    电子发烧友网站提供《具有增强EMC和GPIO的ISO164x热插拔双向I2C隔离器数据表.pdf》资料免费下载
    发表于 08-16 11:09 0次下载
    具有增强EMC和GPIO的<b class='flag-5'>ISO164x</b>热插拔双向I<b class='flag-5'>2C</b>隔离器数据表

    c语言,c++,java,python区别

    C语言C++、Java和Python是四种常见的编程语言,各有优点和特点。 C语言
    的头像 发表于 02-05 14:11 2215次阅读

    C++简史:C++是如何开始的

    MISRA C++:2023,MISRA® C++ 标准下一个版本,来了!为了帮助您做好准备,我们介绍了 Perforce 首席技术支持工程师 Frank van den Beuke
    的头像 发表于 01-11 09:00 528次阅读
    <b class='flag-5'>C</b>++简史:<b class='flag-5'>C</b>++是如何开始的

    C语言C++中那些不同的地方

    C语言虽说经常和C++在起被大家提起,但可千万不要以为它们是东西。现在我们常用的
    的头像 发表于 12-07 14:29 902次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>和<b class='flag-5'>C</b>++中那些不同的地方

    晶体管的下一个25年

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

    C语言运行环境是什么

    C语言运行环境(C language runtime environment)是指在执行C语言程序时所需的软件及硬件环境。
    的头像 发表于 11-27 16:13 3332次阅读

    如何选择创建c语言c++

    ++ 的详尽、详实、细致的讨论。 C 语言的特点和优势: C 语言种过程性的编程语言,它注重
    的头像 发表于 11-27 15:58 566次阅读

    scanf在C语言中的作用

    scanf在C语言中的作用  scanf是C语言中的输入函数,用于从标准输入设备(如键盘)读取数据,并将其存储到变量中。它是
    的头像 发表于 11-23 14:13 1295次阅读