C语言调用其他文件中的函数为什么报错?

C语言调用其他文件中的函数为什么报错?,第1张

这个要看报什么错了。

调用其他文件里的函数两种方法:

1.在fine.c中有完整的函数定义,在main_fine.c中添加一下要用到的函数原型(声明)就可以了,例如:

在fine.c中:有函数void asd(){…};

在main_fine.c中:在文件前头增加一行:void A2()就可以了。

2.把fine.c中完整定义的函数的原型,写到一个A2.h文件中,然后在main_fine.c的文件头增加#include "fine.h"就可以了。

可以的。

在C语言中,函数调用的方式有多种,在函数调用中还应该注意的一个问题是求值顺序。所谓求值顺序是指对实参列表中各个参数是自左向右使用,还是自右向左使用。对此,各系统的规定不一定相同。

__cdecl调用规则就是C调用规则。按从右至左的顺序压参数入栈,由调用者把参数d出栈。切记:对于传送参数的内存栈是由调用者来维护的。

返回值在EAX中因此,对于象printf这样变参数的函数必须用这种规则。编译器在编译的时候对这种调用规则的函数生成修饰名的饿时候,仅在输出函数名前加上一个下划线前缀,格式为_functionname。

扩展资料

示例:

在VC6.0和C-Free 5.0下运行以下代码。

#include <stdio.h>

int main(){

int i=8

printf("%d %d %d %d\n",++i,++i,--i,--i)

return 0

}

运行结果:

8 7 6 7

可见VC 6.0是按照从右至左的顺序求值。如果按照从左至右求值,结果应为:

9  10  9  8

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

如题,比如我建了两个C源文件

A1.C 和 A2.c

我把一个自字义函数写在A2.c里面,然后在A1.c里面调用它

1,A1.c要怎样调用?

2,A2.c里面要怎样写?只写一个自定义函数就可以了吗?

解析:

有两种方法:

1。在A2.c中有完整的函数定义,在A1.c中添加一下要用到的函数原型就可以了,例如:

在A2.c中:有函数void A2(){...}

在A1.c中:在文件前头增加一行:void A2()就可以了

2。把A2.c中完整定义的函数的原型,写到一个A2.h文件中,然后在A1.c的文件头增加#include "A2.h"就可以了

以上两种方法,在A1.c中都可以正常的调用,就跟在A2.c中调用一样。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11905100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存