c语言同名函数问题 c语言函数名和变量同名

c语言中的重名函数指的是什么?为什么不能通过,请举个例子

就是指函数名相同,比如,int

网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了海港免费建站欢迎大家使用!

func()与int

func(int),

C语言里没有函数重载,所以这样写是不行的(C++里是可以的)。

c语言中为什么函数不能重名?请举个函数重名的例子,谢谢

可以重名,不过函数的参数类型或数量要不一致,例子如下:

//递归求阶乘

int calc(int num){

if(num==0){

return 0;

}else{

return num*calc(num-1);

}

}

//递归求任意一个整数的整数次方

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语言同名函数问题

这不是两个函数,这是一个函数,extern "C" int listid(int id, OUT *);

中的extren通知编译器int listid(int id, OUT *)不在本源代码中实现,

"c"通知编译器用C调用方式调用在另外的一个源程序的函数,

C语言默认的调用方式就是C调用 C++就不同了,,所以最好加个"c"

另:调用方式规定了调用的时候输入参数的顺序和函数返回后输入参数占用的空间由调用程序释放还是由函数释放。这东西不一定要太懂,知道用"c"去考虑调用方式就可以了.

参数不同也是可以的,但是执行一定会有错误,而且应该不能出现同名不同参数的的令一个函数。要不连接的时候就找不到正确的函数。

c语言中,自定义函数和库函数重名会怎么样。会编译出错吗?

如果是C++,有重载机制,不一定会出错(如果两个重名函数的参数列表不相同的话)

如果是C

#include了包含那个库函数的头文件的情况下,再定义一个重名函数,就会出错


分享标题:c语言同名函数问题 c语言函数名和变量同名
URL地址:http://cdiso.cn/article/dophgdc.html

其他资讯