C语言不同文件的函数相互调用分配,只要在要调用的源文件中包含要被调用的函数所在的头文件即可,但是需要避免重复包含头文件,需要每次写头文件的时候加上:
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了威县免费建站欢迎大家使用!
#ifndef _XXX_H_
#define _XXX_H_
#endif
另一种方法也可以试试看:
新建 project,然后添加 文件,main 所在程序中 添加函数声明 就可以调用了
main.c
#include stdio.h
extern int add(int a, int b);
int main(void)
{int a = 1, b = 2;printf("%d",add(a,b));}
2.cint add(int a, int b)
{return a + b;}
分类: 电脑/网络 程序设计 其他编程语言
问题描述:
如题,比如我建了两个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中调用一样。
可以的。
在C语言中,函数调用的方式有多种,在函数调用中还应该注意的一个问题是求值顺序。所谓求值顺序是指对实参列表中各个参数是自左向右使用,还是自右向左使用。对此,各系统的规定不一定相同。
__cdecl调用规则就是C调用规则。按从右至左的顺序压参数入栈,由调用者把参数弹出栈。切记:对于传送参数的内存栈是由调用者来维护的。
返回值在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