C语言中如何实现函数的重复定义(名字相同,参数不同,功能类似)

mvsqr2 2009-07-27 03:45:11
函数名为func()
一个定义func(int a);
另一个定义func(int a, int b);

结果报错:
1.第二个函数参数太多
2.函数func已有一个实体(body)
3.参数列表不同

问题:请问C语言如何实现函数重定义?
...全文
3325 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
kojie_chen 2009-07-27
  • 打赏
  • 举报
回复
重载需要面向对象,而c是面向过程的
kojie_chen 2009-07-27
  • 打赏
  • 举报
回复
c++支持重载
lazyloveboy 2009-07-27
  • 打赏
  • 举报
回复
不支持哦
mvsqr2 2009-07-27
  • 打赏
  • 举报
回复
原来如此!谢谢各位
ies_sweet 2009-07-27
  • 打赏
  • 举报
回复
如果这些同名函数分布在不同的文件
可以使用static修饰函数
使函数只在本文件可见。

这样在一定程度上可以保证
不同文件中可以定义名字相同,但是内容不同的函数。
Sou2012 2009-07-27
  • 打赏
  • 举报
回复
函数重载一般是OOP语言里特有的,如 C++ JAVA

C语言里没有
weidong0210 2009-07-27
  • 打赏
  • 举报
回复
恩 C不支持重载
fireyou 2009-07-27
  • 打赏
  • 举报
回复
static
looklzg1108 2009-07-27
  • 打赏
  • 举报
回复
C 不支持重载,重载是C++出来之后才有的概念。
可以用static关键字限制函数在本文件可见。
liao05050075 2009-07-27
  • 打赏
  • 举报
回复
这个做不到。
C不支持函数重载。这也是为什么C++高用C模块要使用extern C的原因
goodname 2009-07-27
  • 打赏
  • 举报
回复
局部的函数同名是无所谓的。但是全局的是无法做到的。
wuyu637 2009-07-27
  • 打赏
  • 举报
回复
一般会定义成下面的形式

函数名为func()
一个定义func_int(int a);
另一个定义func_int_int(int a, int b);


必须在函数名中有所区别。
layject 2009-07-27
  • 打赏
  • 举报
回复
c好像不支持函数重载吧

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧