扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
题目明显提示你没有定义“add”呀,要求你查看“add”哦!再个你程序还是有问题的吧,如果你把它放到不同的源文件中一起编译连接的话,还会出现重复定义的错误吧。改正如下:
为弋阳等地区用户提供了全套网页设计制作服务,及弋阳网站建设行业解决方案。主营业务为成都做网站、网站设计、弋阳网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
#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”可以不要吧,一般他是用来声明用的,*/
return p1; //此处要返回一个值,没有值是不可以的
}
在源文件A1.c中调用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中调用一样。
其实函数默认是外部的,只要在其他文件中声明就能使用;但是注意如果在前面加上static,就只能在本文件中使用了,不能再被其他的文件调用。
扩展资料:
1、一个.h文件要 对应有一个.c文件,这样链接器就可以调用这个文件里的函数。比如a.h 和 a.c。
2、把相应的函数定义写在.c文件中。这里要强调一点:要加上#include ".h",这个一般作为一种工程规范。因为如果.c文件中的函数也需要调用同个.c中的其它函数,那么这个.c往往会include对应的.h。比如头文件里进行了变量的声明,这个时候对应的.c文件是一定要加上这个头文件的。
3、再在其他的main.c文件开头添加#include "a.h"。
一般来说
头文件里包含:
1。引用的头文件
2。(外部)全局变量声明
3。结构体,类,枚举,宏定义
4。(外部)函数声明
5。......
源文件包含:
1。引用的头文件
2。全局变量定义
3。函数实现
4。仅本文件内使用的全局变量
5。也可以包含头文件的全部内容
6。......
首先要建立一个头文件,以.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)
{
....
}
主函数来负责调用,别的源文件.但是,要有一定要有个头文件.
就相当说, 站长(主函数)要控制各个列车(多个源文件).需要通过调度台(头文件)
这是我的理解,我也是刚学.希望大家指正
编译的时候,要分别编译,先要把非主函数的源文件便宜成obj格式.
我的编译器是:cl /c 源文件名.c (cygwin中是 gcc -c 源文件名.c)
最后和主函数结合.
cl main.c 源文件.obj
cygwin中是 gcc -o main main.c 源文件.o
不知道 我说的够不够明白
file1.c 头文件为file1.h
file2.c 头文件为file2.h
比如file2.c要调用file1.c里的一个函数
首先file2.c里要包含file1.h头文件(file1.h里有file1.c的函数申明)
然后file2.c文件里要有file1.c里的外部函数申明,用extern关键字申明
然后就可以直接file2.c里面调用file1.c里的函数了
程序是指你为了完成你的功能而编写的项目代码。
文件是信息的保存方式,包括程序文件、库文件、数据文件等。广义上说,设备也包含在文件的定义里面。
由于程序规模可能非常大,编程时往往将将代码划分成若干模块,每一模块对应一个子功能,这样也方便实现程序代码的复用。这一一个模块,在形式上就体现为函数。——如果规模再大一些,可能还需要将一些相关的类封闭成类库,以方便调用,进一步提高程序的复用性。
这些只是经验,谈不上理论,也没必要去钻牛角尖。程序多写一些,你自然就明白了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流