curl 创始人兼核心开发者 Daniel Stenberg发表博客称,他正在考虑是否要将 curl 使用的 C 语言标准从 C89 升级到 C99。
Daniel 表示,他观察到许多广受欢迎的 C 语言开源项目正在向前发展,并将所使用的 C 语言标准升级到 C99 或更高版本,例如 Linux、Git 等项目。而且在 curl 的邮件列表中也经常出现关于升级 C 语言标准的讨论,特别是现在已计划在 2023 年春季发布 curl v8,所以从理论上来讲,这可能是进行一些更改的好时机。如果要升级 C 语言标准到 C99,那就要考虑哪些 C99 特性可以改进像 curl 这样的项目。Daniel 表示自己能想到的可能给 curl 代码带来积极影响的部分特性是:-
//注释 -
__func__预定义标识符 -
在
中使用布尔类型 -
指定的结构体初始值设定项
空的宏参数 -
在
和中使用扩展的整数类型 -
灵活的数组成员 (zero size arrays)
-
内联函数
-
整数常量类型规则
-
将声明和代码混合
-
long long类型和库函数 -
snprintf()函数家族 -
枚举声明中支持尾随逗号
-
可变参数宏
-
长度可变的数组
此外,curl 作者表示不想推出 7.100,为此制定了 curl 8 发布计划。curl 7 的版本号已迭代到7.86.0—— 离发布 7.100.0 只差十多个版本,但 curl 作者 Daniel Stenberg不希望在次版本号中使用三位数,因为他担心这会引发不必要的问题,甚至可能会导致他人用于比较版本的脚本出错。由于 curl 通常每隔 8 周发布一次新版本,如果按照计划的发布节奏,curl 7 的次版本号差不多在两年后就会到达 100。Daniel 发现明年是 curl 的一个重要周年纪念日,他想到了一个可以避免 "100" 版本号的方案 ——在 curl 诞生 25 周年当天发布 curl 8。如此一来,既凸显了周年纪念日的地位,又体现了升级主版本号的意义,更是直接避开了 "100" 版本号。可谓是一步到位地实现了 “既要又要还要” 的需求。 因此,在 2023 年 3 月 20 日,curl 25 岁生日当天,Daniel 将会正式发布 curl 8.0.0。这将会是 curl 23 年来首次升级主版本号。不过正如上文所解释,此次升级主版本号与功能变化无关,也不会进行特别的庆祝。总而言之,这个升级和常规的并无二致,只是重置了次版本号,并升级主版本号。在常规的 curl 发布周期中,通常是是每隔 8 周在周三发布一次新版本。然而 2023 年 3 月 20 日是星期一。因此,curl 8.0.0 的发布时间会有所调整,curl 作者计划在发布 curl 8 之后再调整回常规的发布时间。 审核编辑 :李倩
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C语言
+关注
关注
183文章
7646浏览量
146189 -
代码
+关注
关注
30文章
4977浏览量
74399
原文标题:curl 作者:不考虑其他语言重构,计划升级 C 语言标准、明年发布 curl 8
文章出处:【微信号:CPP开发者,微信公众号:CPP开发者】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
热点推荐
C语言核心视频课程-从小工到专家
”的文章,重点放在发展趋势和成长路径上,不涉及代码。 未来底层开发首选:C 语言核心课,从小工到专家的硬核进阶之路 在当今软件技术快速发展的时代,底层开发依然是技术体系的根基,而C
AT89C55WD微控制器:特性、功能与应用详解
嵌入式控制应用提供高灵活性和高性价比的解决方案。本文将深入剖析AT89C55WD的各项特性、功能及应用要点。 文件下载: AT89C55WD-24AI.pdf 一、产品概述 AT89C
探索DS89C430/DS89C450超高速闪存微控制器的卓越性能与应用潜力
探索DS89C430/DS89C450超高速闪存微控制器的卓越性能与应用潜力 在电子工程师的日常设计工作中,选择一款性能卓越、功能丰富的微控制器至关重要。今天,我们来深入了解Maxim
高速性能之选:DS89C430/DS89C450超高速闪存微控制器深度解析
高速性能之选:DS89C430/DS89C450超高速闪存微控制器深度解析 在电子工程师的设计世界里,选择一款性能卓越的微控制器至关重要。今天我们就来深入探讨Maxim Integrated
【ESP32-C2系列】WT99C202-AI-S2开发板上手指南
设计的智能语音AI模组,支持2.4GHzWi-Fi、BluetoothLEv5.0,本地语音控制,此外,WT99C202-AI-S2支持离在线语音对话,OTA升级,
C语言安全编码指南:MISRA C、CERT C、CWE 与 C Secure 标准对比与Perforce QAC应用详解
如何编写真正安全的C语言代码?指南涵盖MISRA C、CERT、CWE等国际安全编码标准对比,以及如何借助Perforce QAC自动检测漏洞。推荐给嵌入式/汽车/工业软件的开发者!
C语言主要特点
。
3.数据类型丰富。C语言提供的数据类型包括整形、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型等,C99又扩充了复数浮点型、超长整型(long long)和布尔类型(bool)等。尤其是
发表于 01-05 07:41
微库与标准C库的区别
、stdout 和 stderr 除外。
MicroLib对 C99 函数提供有限的支持。
MicroLib不支持操作系统函数。
MicroLib不支持与位置无关的代码。
MicroLib不提供互斥锁来
发表于 12-09 07:49
C语言的编程技巧
1、宏定义使用do{...}while(0):当宏定义中包含多条语句时,使用do{...}while(0)可以避免语句嵌套问题,确保宏的独立性。
2、灵活数组成员:C99标准允许结构体的最后
发表于 11-27 06:46
STM32MP157d linux从5.4.31升级到6.1.82无法启动怎么解决?
我以前一直使用linux5.4.31,只使用了TFA没有optee
uboot是2020版本。一直用得好好的
上个礼拜我想升级到6.1.82(主要想打RT linux patch, 看到STM有出
发表于 06-10 07:31
JDK从8升级到21的问题集
一、背景与挑战 1. 升级动因 ◦Oracle长期支持策略 ◦现代特性需求:协程、模式匹配、ZGC等 ◦安全性与性能的需求 ◦AI新技术引入的版本要求 2. 项目情况 ◦100+项目并行升级
STM32MP157d linux从5.4.31升级到6.1.82无法启动怎么解决?
我以前一直使用linux5.4.31,只使用了TFA没有optee
uboot是2020版本。一直用得好好的
上个礼拜我想升级到6.1.82(主要想打RT linux patch, 看到STM有出
发表于 06-06 06:42
STM32MP157d linux从5.4.31升级到6.1.82无法启动怎么解决?
我以前一直使用linux5.4.31,只使用了TFA没有optee
uboot是2020版本。一直用得好好的
上个礼拜我想升级到6.1.82(主要想打RT linux patch, 看到STM有出
发表于 05-21 06:20
将curl使用的C语言标准从C89升级到C99?
评论