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

在C语言中能否用同名变量与函数?报错是否由此引发?

C语言中变量与函数同名的问题分析
  • C语言语法上允许变量和函数使用相同名称,但作用域规则会导致同名标识符的覆盖问题,这正是你遇到报错的核心原因。
  • 你的代码里,main函数内部定义了局部变量sumOfSquare,而全局作用域下存在同名的sumOfSquare函数。在main函数的作用域内,局部变量的优先级高于全局标识符,所以当你写sumOfSquare(a, b)时,编译器会把sumOfSquare识别成那个int类型的局部变量——变量当然不能像函数那样传参调用,于是就出现了报错:called object 'sumOfSquare' is not a function or function pointer。
  • 报错信息里的note: declared here指向的就是main里定义的int a, b, sumOfSquare;,也直接佐证了这一点。

解决办法很简单:把局部变量或者函数的名称改成不一样的,避免作用域内的同名冲突。比如把局部变量改成result,代码就能正常调用函数了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:24:52