c语言多文件编程调用函数 多文件c程序

C语言中 多个源文件之间函数如何调用首先要建立一个头文件,以.h保存
这样
#include stdio.h
typedef struct {
char name[100][60];
char number[100][8];
int mon[100],day[100];
char sex[100];
double height[100];
}inf;
int input(inf *x ,int i);
int output(inf *y ,int h);
当然要有个主函数.
#include "inout.h"
int main(void)
{
int n;
inf id;
do{
printf("*********n");
scanf("%d",n);
}while(n100);
input(id,n);
output(id,n);
return(0);
}
然后 这个头文件有两个函数.这两个函数,以.c的格式保存.
#include stdio.h
#include "inout.h"
int input(inf *x,int i)
{
........
}
#include stdio.h
#include "inout.h"
int output(inf *y ,int h)
{
....
【c语言多文件编程调用函数 多文件c程序】}
主函数来负责调用,别的源文件.但是,要有一定要有个头文件.
就相当说, 站长(主函数)要控制各个列车(多个源文件).需要通过调度台(头文件)
这是我的理解,我也是刚学.希望大家指正
编译的时候,要分别编译,先要把非主函数的源文件便宜成obj格式.
我的编译器是:cl /c 源文件名.c (cygwin中是 gcc -c 源文件名.c)
最后和主函数结合.
cl main.c 源文件.obj
cygwin中是 gcc -o main main.c 源文件.o
不知道 我说的够不够明白
C语言多文件函数调用问题 。。在调用函数之前 , 编译器需要知道调用的规则,即调用的参数、参数个数、返回值,以一个文件为单位 。
比如在first.c中需要调用play1那么编译器就需要买哦时play1的调用规则,所以一般用int play1();这样的语句说明一下,用extern也可以,由于main中不存在调用play2的语句 , 就不需要事先声明了;
在second.c中由于play1之前编译器已经编译过了play2 , 所以知道了play2的调用规则,就可以省略声明语句 。
象first.c中调用外部程序比较多时,就将这些声明语句另存成一个.h文件,然后用include包含这个.h文件就可正常调用了,例如#includestdio.h
C语言中 多个源文件之间函数如何调用问题题目明显提示你没有定义“add”呀c语言多文件编程调用函数,要求你查看“add”哦!再个你程序还是有问题c语言多文件编程调用函数的吧c语言多文件编程调用函数,如果你把它放到不同的源文件中一起编译连接的话,还会出现重复定义的错误吧 。改正如下:
#includestdio.h
#includemalloc.h
struct add *wwe();
struct add
{
int xuehao;
};
main()
{
struct add *p1;
p1=wwe();
}
//被调函数332.c
#include stdio.h
#includemalloc.h
struct add *wwe() //此处你是定义一个名为wwe的函数,没有参数,返回值类型是:struct add*
{
struct add *p1;
p1=(struct add *)malloc(sizeof(struct add));/*此处“extern”可以不要吧,一般c语言多文件编程调用函数他是用来声明用的,*/
return p1; //此处要返回一个值,没有值是不可以的
}
c语言中,多文件编程 , 如何调用主文件外文件中的函数如果该函数在主文件外的C语言头文件中,那么用
#include "C语言头文件名" 引用,然后就可以使用了(包含在同一项目下编译)
如果没有,在主文件使用
extern 改函数的定义;来声明一下就可以使用了
例如
extern int foo(int bar);
int main(int argc,char **argv)
{
foo(1);
...
return 0;
}
c语言多文件编程调用函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于多文件c程序、c语言多文件编程调用函数的信息别忘了在本站进行查找喔 。

    推荐阅读