c语言一个结构体如何在多个源文件里面调用?

c语言一个结构体如何在多个源文件里面调用?,第1张

引用结构体有引用类型,和引用全局变量两种方式。

1、引用类型。

需要将结构体定义与头文件中(.h文件),然后在需要引用类型的源文件(.c)中,均引用该头文件,即可使用该类型。

2、引用全局变量。

要引用全局变量,需要先引用类型,之后在一个源文件中定义全局变量,在其它源文件中声明该全局变量,即可使用。

比如结构体为struct test, 定义全局变量为

struct test glabol_test

在其它文件中,只需要

extern struct test globol_test

即可在对应文件声明所在行之下进行调用。

首先要建立一个头文件,以.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(n>100)

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

不知道 我说的够不够明白

在文件最前面使用#include可以调用文件。例如

#include

<stdio.h>

/*调用系统stdio.h*/

#include

"test.h"

/*调用用户自定义文件test.h*/

被调用的文件多是.h文件,即头文件。当然也可以是.c文件,即c语言源文件,但一般不推荐使用这种方式。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存