正文
c语言不支持同名函数吧 c语言不允许使用类型名怎么解决
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
c语言中函数名是否可以和变量同名?
答案是c语言不支持同名函数吧:否
c语言中,变量和函数名称不允许相同,比如你定义一个函数int a();那么你c语言不支持同名函数吧的main函数中,如果int a=a();则会报错,这是c语言中非常讨厌c语言不支持同名函数吧的一点,当然,反对者可能会说:“容易引起名称混淆,导致不容易维护”,这是很牵强c语言不支持同名函数吧的说法,用现在流行的词汇叫做:强行为c语言的缺点洗白,c语言的这个限制,极大程度的增加了初学者,尤其是自学者的学习难度,因为初学者不会考虑变量的含义,通常定义aa,bb,cc这样更利于快速学习,但是出来这个限制,并且不知情的情况下,甚至都不知道在网上如何搜索来解决这个小问题,所以个人觉得这是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 文件中可以定义相同名称的函数吗?
函数:
1.C语言在相同c语言不支持同名函数吧的.c文件中一定不能定义名称相同的函数c语言不支持同名函数吧,即使是重载的c语言不支持同名函数吧,因为C语言不支持重载c语言不支持同名函数吧,这样链接的时候会报错。
2不同的.c文件中一般不能定义名称相同的函数,比如int func(int*);如果非要定义名称相同的函数,而且函数只在该(对应的).c文件中使用,可以声明成static类型。如两个函数都定义为static int func(int*);这样就可以定义成相同名字。
变量:
1.静态变量在同一个.c文件中可以命名相同,但是只能初始化一次,否则链接出错。而且实际只有一个该名字的变量。
如 static int tst; static int tst; //可以。
static int tst = 0; static int tst; //可以
static int tst = 0; static int tst = 0;//错误
2.静态变量在不同.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语言不支持同名函数吧和c语言不允许使用类型名怎么解决的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。