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

求助:C程序编译报‘too few arguments to function’错误如何解决

修复你的C程序编译错误及main函数规范问题

核心错误分析与修复

1. printf函数调用错误

编译报错error: too few arguments to function 'printf'的根源是代码中的sizeof(printf()):

  • printf()是调用printf函数的写法,但这里你没有传递任何参数,违反了printf的调用规则。
  • 你实际需要的是获取printf函数指针的大小,正确写法是sizeof(printf)(直接使用函数名,函数名本身就是指向该函数的指针,无需加括号调用)。

2. main函数不符合标准

标准C语言要求main函数的返回类型必须是int,你的代码中直接写main()不符合规范,会触发编译器警告或错误,应修改为int main()。

额外规范优化(可选)

sizeof运算符的返回值是size_t类型,对应的格式化输出占位符应为%zu而非%d。虽然在16位编译环境下int和size_t长度均为2字节,用%d能得到预期结果,但%zu是符合C标准的写法,在32/64位环境下也能正确输出数据大小。另外,字符串中的换行建议用标准转义符\n,而非直接换行。

修复后的完整代码

#include <stdio.h>

int main()
{
    int whoCount, newCount;
    printf("Size of whoCount is %zu\n", sizeof(whoCount));
    printf("Size of newCount is %zu\n", sizeof(newCount));
    printf("Size of printf is %zu\n", sizeof(printf));
}

这段代码编译后可正常运行,输出符合你的预期(16位环境下输出每个大小为2)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 00:25:23