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中调用一样。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)