
正文
c语言两个一样的函数名 c语言函数同名问题
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言同名函数问题
这不是两个函数,这是一个函数,extern "C" int listid(int id, OUT *);
中的extren通知编译器int listid(int id, OUT *)不在本源代码中实现,
"c"通知编译器用C调用方式调用在另外的一个源程序的函数,
C语言默认的调用方式就是C调用 C++就不同了,,所以最好加个"c"
另:调用方式规定了调用的时候输入参数的顺序和函数返回后输入参数占用的空间由调用程序释放还是由函数释放。这东西不一定要太懂,知道用"c"去考虑调用方式就可以了.
参数不同也是可以的,但是执行一定会有错误,而且应该不能出现同名不同参数的的令一个函数。要不连接的时候就找不到正确的函数。
相关问答
Q1: c语言中两个头文件中的函数能同名吗
这是不能的。C程序中如果同时包含这两个头文件的话,就会发生冲突,链接的时候有两个同名的函数,就会无法链接通过的。
Q2: 在C语言中:在同一文件中,函数的名字可否相同
C语言在同一个源程序文件中c语言两个一样的函数名,两个函数肚饿名字不可以相同
C++允许相同c语言两个一样的函数名,这个叫重载,但是相同名字c语言两个一样的函数名的函数c语言两个一样的函数名的参数的个数或者类型必须不同。
Q3: c语言中,能定义两个名相同的,但是参数不同的函数吗
不可以的,c语言翻译成汇编,函数名中不带参数的信息,但是c++翻译成汇编后,每一个函数的名字除了包含了函数名,还包含了函数的参数信息
Q4: C语言 在不同的 .c 文件中可以定义相同名称的函数吗?
函数:
1.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文件中使用。
具体可以百度强符号与弱符号。
以上。
Q5: c语言中的重名函数指的是什么?为什么不能通过,请举个例子
就是指函数名相同c语言两个一样的函数名,比如c语言两个一样的函数名,int
func()与int
func(int),
C语言里没有函数重载c语言两个一样的函数名,所以这样写是不行c语言两个一样的函数名的(C++里是可以的)。
c语言两个一样的函数名的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言函数同名问题、c语言两个一样的函数名的信息别忘了在本站进行查找喔。







