c语言函数名相同参数不同 c语言函数名可以相同吗

c语言中为什么函数不能重名?请举个函数重名的例子,谢谢可以重名 , 不过函数c语言函数名相同参数不同的参数类型或数量要不一致,例子如下c语言函数名相同参数不同:
//递归求阶乘
int calc(int num){
if(num==0){
return 0;
}else{
return num*calc(num-1);
}
}
//递归求任意一个整数c语言函数名相同参数不同的整数次方
int calc(int num,int count){
if(num==0){
return 0;
}else if(count == 0){
return 1;
}else{
return num*calc(num,count-1);
}
}
这两个函数方法名称完全一样,但是参数不一样,这种做法有一个叫法,叫函数的重载
c语言中,能定义两个名相同的 , 但是参数不同的函数吗不可以的,c语言翻译成汇编,函数名中不带参数的信息,但是c++翻译成汇编后,每一个函数的名字除了包含了函数名,还包含了函数的参数信息
c语言同名函数问题这不是两个函数,这是一个函数,extern "C" int listid(int id, OUT *);
中的extren通知编译器int listid(int id, OUT *)不在本源代码中实现,
"c"通知编译器用C调用方式调用在另外的一个源程序的函数,
C语言默认的调用方式就是C调用C++就不同了, , 所以最好加个"c"
另:调用方式规定了调用的时候输入参数的顺序和函数返回后输入参数占用的空间由调用程序释放还是由函数释放 。这东西不一定要太懂,知道用"c"去考虑调用方式就可以了.
参数不同也是可以的,但是执行一定会有错误,而且应该不能出现同名不同参数的的令一个函数 。要不连接的时候就找不到正确的函数 。
在C语言中:在同一文件中,函数的名字可否相同C语言在同一个源程序文件中,两个函数肚饿名字不可以相同
【c语言函数名相同参数不同 c语言函数名可以相同吗】C++允许相同 , 这个叫重载,但是相同名字的函数的参数的个数或者类型必须不同 。
C语言中,不能定义相同名称的函数么?比如你说的这些是C++的函数重载,C++是可以的,但C语言不支持函数重载
比如:
void
fun(int
n)
与int
fun(int
n)就是名称相同,返回类型不同,参数相同
void
fun(int
n)
与int
fun(int
n,int
s)就是名称相同,返回类型不同,参数类型相同个数不同
int
fun(int
n)
与int
fun(int
n,int
s)
名称相同,返回类型相同 , 参数类型相同个数不同
所以这些在用C语言编程时都会报错,就是不行
关于c语言函数名相同参数不同和c语言函数名可以相同吗的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读