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语言
    +关注

    关注

    183

    文章

    7642

    浏览量

    144619
  • ISO
    ISO
    +关注

    关注

    0

    文章

    293

    浏览量

    41007
  • C2xx
    +关注

    关注

    0

    文章

    2

    浏览量

    6720
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C语言的编程技巧

    成员是未知大小的数组,适用于动态分配内存并关联可变长度的数组。‌ ‌3、匿名结构体和
    发表于 11-27 06:46

    写好C程序的大要点

    ——进入新的层次),Backspace键(回到前对齐位置——退到外面的层次)。
    发表于 11-24 08:23

    C语言和单片机C语言有什么差异

    有些扩展,及些特殊写法如C51扩展的 data xdata bit sbit类的,还有些中断程序写法 void int() interrput 1
    发表于 11-14 07:55

    C语言的printf基本用法介绍

    小数。f 是 float 的简写。 除了这些,printf 支持更加复杂和优美的输出格式,考虑到读者的基础暂时不够,我们将在《C语言数据输出大汇总以及轻量进阶》节中展开讲解。 我
    发表于 11-12 07:04

    第4章 C语言基础以及流水灯的实现(4.3 4.4)

    的符号分别是:+、-、*、/、%。 C语言很重要的赋值运算符“=”,前边程序有使用过。在C语言
    的头像 发表于 10-29 15:30 181次阅读

    科技云报到:西湖大学、智元机器人都选它,存储成为AI下一个风口

    科技云报到:西湖大学、智元机器人都选它,存储成为AI下一个风口
    的头像 发表于 09-03 11:24 536次阅读

    【原创】TDMS设置下一个写入位置函数的摸索

    labview在20版本前,tdms都有高级函数,写入文件位置set file positon,但是在20版本后被取消了。取而代之是‘tdms设置下一个写入位置函数’ 本意是想利用tdms设置
    发表于 08-11 20:54

    AI玩具或成为下一个万亿新赛道

    如果你将拥有家庭新成员,你首先会想到什么?是孩子还是宠物?如果我说你下一个家庭成员,或许是会“察言观色”的AI玩具,这件事是不是听上
    的头像 发表于 07-29 10:15 900次阅读

    文详解CKS32K148微控制器的LPI2C模块

    LPI2C(Low Power Inter-Integrated Circuit)是CKS32K148微控制器中的低功耗I2C接口模块。CKS32K148款MCU存在LPI
    的头像 发表于 07-16 14:16 2498次阅读
    <b class='flag-5'>一</b>文详解CKS32K148微控制器的LPI<b class='flag-5'>2C</b>模块

    深入理解C语言C语言循环控制

    C语言编程中,循环结构是至关重要的,它可以让程序重复执行特定的代码块,从而提高编程效率。然而,为了避免程序进入无限循环,C语言提供了多种循环控制语句,如break、continue和
    的头像 发表于 04-29 18:49 1736次阅读
    深入理解<b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>C</b><b class='flag-5'>语言</b>循环控制

    ad7616 burst模式读取数据时,是否可以在下一个convst启动转换?

    ad7616 burst模式读取数据时,是否可以在下一个convst启动转换,但busy还没有拉低的情况下继续读取上次转换的数据吗?主要是串行读取时,有可能出现convst临界的情况,如果这样可以的话,能够提升小部分con
    发表于 04-15 07:50

    C语言的历史及程序介绍

    电子发烧友网站提供《C语言的历史及程序介绍.pdf》资料免费下载
    发表于 04-09 16:10 0次下载

    必看!15C语言常见陷阱及避坑指南

      C语言虽强大,但隐藏的“坑”也不少!稍不留神就会导致程序崩溃、数据异常。本文整理15高频陷阱,助你写出更稳健的代码!   陷阱1:运算符优先级混淆  问题:运算符优先级不同可能导致计算顺序错误
    的头像 发表于 03-16 12:10 1379次阅读

    I2C总线设备地址设置方法

    通常是7位或10位的数字,用于标识总线上的每个设备。在7位寻址模式下,地址范围是0x00到0x7F,而在10位寻址模式下,地址范围是0x
    的头像 发表于 01-17 15:17 6989次阅读

    EE-188:使用C语言在ADSP-219x DSP上实现中断驱动系统

    电子发烧友网站提供《EE-188:使用C语言在ADSP-219x DSP上实现中断驱动系统.pdf》资料免费下载
    发表于 01-15 16:06 0次下载
    EE-188:使用<b class='flag-5'>C</b><b class='flag-5'>语言</b>在ADSP-219<b class='flag-5'>x</b> DSP上实现中断驱动系统