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

带原型与不带原型的函数定义:定义3与4的差异是什么?

函数定义void f() { ... }与void f(void) { ... }的差异

差异主要取决于你遵循的C语言标准:

  • C89标准(旧版C)

    • void f() { ... }:属于旧式函数定义,未提供参数原型。编译器不会检查调用该函数时的参数数量和类型,你可以传入任意数量、任意类型的参数(但运行时可能因参数不匹配导致错误)。
    • void f(void) { ... }:明确声明函数不接受任何参数的原型式定义。编译器会严格校验调用行为,只要传参就会触发编译错误。
  • C99及后续标准(现代C)
    两者等价,都表示函数不接受任何参数,编译器会对调用时的传参行为进行严格检查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:47:32