You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C23标准下int main(){}与主流编译器编译行为的疑问

关于C23标准移除非原型函数后的编译行为疑问
int main(){}

即将发布的C23标准移除了非原型函数与K&R风格函数。我了解C23尚未正式发布,但GCC和Clang的当前编译行为令我困惑,具体编译场景如下:

  • 使用GCC(主干版本)通过-std=c2x -pedantic-errors -Wall -Wextra编译上述代码,无诊断信息;
  • 使用Clang 16.0.0通过相同参数编译,无诊断信息;
  • 使用Clang 16.0.0仅通过-pedantic-errors -Wall -Wextra编译,出现错误:

error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]

我该如何理解这种现象?我能理解GCC因C23未正式发布尚未实现相关特性,但为何Clang在不指定-std=c2x时会触发该错误?

内容的提问来源于stack exchange,提问作者Lundin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:44:56