将curl使用的C语言标准从C89升级到C99?

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() 函数家族
枚举声明中支持尾随逗号
可变参数宏
长度可变的数组
当然,开发者还可以使用许多其他的特性,但问题是他们是否真的需要这些特性。而且对于上面提到的部分特性,daniel 表示他们已经有了不错的替代方案,其他的特性要么就是无关紧要,要么就是可能会让人分心。因此,daniel 认为,如果马上为 curl 项目采用 c99 所有新特性,这会导致重写大部分代码,从而引入错误。此外还有一个问题,如果真的要升级 c 语言标准,是否应该直接升级到 c11,而不是停留在 c99。在 curl 社区对于升级 c 语言标准的讨论中,没有人能清楚地阐明升级之后能给 curl 项目带来的好处。daniel 表示他们目前看到的风险是,大家都陷入了与项目非常不相关的讨论和变化中,而这些讨论和变化实际上可能不会使项目取得很大进展。无论是功能还是质量 / 安全性。daniel 认为还有很多更好的事情要做,还有更多值得付出的努力来投入精力,这实际上可以改进项目并将其推进。比如改进测试套件、增加测试覆盖率、确保更多代码由模糊器执行。daniel 决定从 curl 8 开始,他们将要求编译器支持 64 位数据类型,主要是为了查看它的运行情况。这不是原来的 c89 版本中存在的特性,而是在 c99 中引入的。目前没有不支持此功能的现代编译器。他认为,这也许是可以继续适应和使用特定的 “后 c89 特性” 的方式。通过挑选特定的特性,然后随着时间的推移慢慢适应它们。最后,daniel 表示不考虑使用任何其他语言重写 curl。  


PTFE是什么材质?聚四氟乙烯(PTFE)纤维有哪些用途?
电机设计:电机效率(一)
谁家的智能助理比较聪明?Siri在语音操作手机功能表现最佳
苹果iPhone在美国的销量正在慢慢陷入停滞
金山软件武汉总部在光谷开工建设,投资 40 亿
将curl使用的C语言标准从C89升级到C99?
华为超强大招 nova 2 Plus亮黑色魔镜版全面起底
OPPOReno亮点解析
浅谈数据中心机房末端配电技术与应用
国内销量最火的OPPO手机“折叠屏”技术,如何与华为、三星展开竞争?
Redmi AirDots 2怎么样?拆解蓝牙真无线耳机对比上一代蓝牙Soc类似
坐拥优势客户资源 威迈斯发展稳定性凸显
迈创力如何提升PCB智能智造新高度
华为携手豫能控股助力新型电力系统能源产业发展和升级
125A的高压连接器有二次锁止结构吗?
奥迪最新的主动安全技术成果展示
家用水力发电机
移远通信获得ASPICE CL2国际认证,汽车软件研发能力跻身全球先进水平
集成电路芯片在信息高速公路体系中的应用范围
电子芯闻早报:三星否认退出相机市场