软件工程课程网站开发,温州市鹿城区建设小学网站,个人网站模板怎么用,久久项目咨询有限公司C 从 C 98 版本到今年确定的 C23#xff0c;共经历了 6 个版本的迭代。上面这张图里#xff0c;列出了每次版本更新变化的内容。顶部黑体字的大小说明了版本变化的大小#xff0c;其中 C14 是字体最小#xff0c;这个版本是 C11 的增量版本#xff0c;之所以没有大的变动 从 C 98 版本到今年确定的 C23共经历了 6 个版本的迭代。上面这张图里列出了每次版本更新变化的内容。顶部黑体字的大小说明了版本变化的大小其中 C14 是字体最小这个版本是 C11 的增量版本之所以没有大的变动是因为当时未能对一些特性是否要纳入标准达成一致。
在 C98 和 C11 中间还有个 C03 版本这个版本不是 C03 的一个重要版本因为它主要是对 C98 标准的修订和修正并没有引入重大的新特性或显著的语言改进。C03 主要致力于解决 C98 中的一些缺陷和不明确之处使标准更加稳定和一致。
下面简要说一下 C 版本的主要变化历史 C98这是第一个 ANSI/ISO 标准化的 C 版本发布于 1998 年。它基于 Bjarne Stroustrup 于 1985 年创建的原始 C 设计并加入了一些重要特性如 STL标准模板库、异常处理、I/O Streams、命名空间和 RTTI运行时类型识别。 C03这个版本主要是对 C98 的一些修正和改进发布于 2003 年并未引入新的语言特性所以一般不把它当做重要版本存在感也不强。 C11这是 C 历史上最重大的更新之一有时被称为 C0x因为它原计划在 200x 年发布一直跳票。它引入了大量新特性如自动类型推断auto 关键字、基于范围的 for 循环、Lambda 表达式、智能指针、并发支持、移动语义、nullptr 和更强大的模板功能等。 C14作为 C11 的小幅度更新C14 引入了一些改进和新特性包括泛型 Lambda 表达式、返回类型推导、二进制字面量、数字分隔符、弃用属性等。 C17这个版本进一步提升了 C 的功能和易用性新功能不是很多引入了结构化绑定、if constexpr、std::optional、std::variant、std::string_view、并行算法等特性。 C20 是继 C11 之后又一个重大更新引入了概念concepts、范围库ranges、协程coroutines、模块modules、三元运算符的改进、constexpr 的增强、std::span 等新特性。 C23 是 2023 年 7 月份刚确定下的新标准目前能完整支持 C23 的编译器基本没有。变化包括引入标准库的模块化支持、扩展 constexpr 、增加并行算法、ranges 扩展、this 推导、引入更多的属性和注解、增加 std::mdspan、std::generator 等新特性。
C23 没有将网络库纳入标准又让 C 爱好者捶胸顿足这等到花儿都谢了。C 是为数不多的没有标准网络库的主流语言想想真是头大。
目前有用到 C20 标准的公司如果碰到这样的公司是 C 程序员的幸福。C 每个版本的更新都会提供部分便利的基础设施简化代码设计。
也是因为 C 一直坚持的向后兼容性让 C 变得越来越臃肿。但我们可以不用学会所有特性C 本来就是设计成支持多种编程范式的语言选择满足需要的特性就好。C 的设计也影响了很多新出现的编程语言。
C 出现以后不时会有新的编程语言要取代 C 的地位到目前为止还没有这样的语言出现。C 依旧生机勃勃在大模型数据处理领域也越发重要。
《Thriving in a Crowded and Changing World: C 2006–2020》 C 之父的这篇论文详细描写了 2006 - 2020 这些年 C 的变化过程值得一看。