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

VS Code中出现“too many arguments to function”错误,CodeBlocks无此问题

问题分析与解决

你的代码存在两个关键问题,这是VS Code中触发报错的核心原因,CodeBlocks因编译器默认配置更宽松未报错:

  1. 函数声明与调用不匹配
    开头的void sayHi();是C语言旧式函数声明,仅说明函数返回void但未指定参数列表。而你调用时传入了字符串参数"Mery",在严格编译标准下,这种声明与调用的不匹配会被判定为错误。

  2. 重复定义同名函数
    C语言不支持函数重载,你同时定义了两个sayHi函数(一个带参数、一个无参数),属于非法重复定义,严格编译器会直接报错。

修正后的代码

#include <stdio.h>  // 必须包含stdio.h才能使用printf

// 声明与实际定义匹配的函数
void sayHi(char name[]);

int main ()
{
    sayHi("Mery");
    return 0;
}

// 保留实际需要的函数定义
void sayHi(char name[])
{
    printf("Hello %s.", name);
}

IDE表现差异原因

  • CodeBlocks默认编译配置可能采用较旧C标准(如C89),或未开启严格错误检查,对旧式声明、重复定义仅发警告而非错误。
  • VS Code的编译配置(通常通过tasks.json设置)可能开启了-Wall、-Werror等严格检查选项,将这类潜在问题直接判定为错误,强制修正代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:32:01