c语言中如何引用另一个源文件中定义的结构数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中如何引用另一个源文件中定义的结构数组相关的知识,希望对你有一定的参考价值。

如果变量在另一个源文件(.c)中定义,那么需要在此源文件中使用extern进行一次声明。
比如数组定义为: struct student[MAX];
那么在此文件中的声明为: extern struct student[MAX];追问

比如在一个源文件中是这样定义的
struct Token
int no;
char sym[10];
char c[32];
;
struct Token token[500];
那在另外的源文件中是不是这样引用
extern struct Token token[500];

追答

是的。但是这样存在struct Token 未定义的问题。
你必须把struct Token这个结构体类型的定义放在.h头文件里面。
变量token[500]不能放在头文件里,而必须放在源文件中。
一般类型、#define定义的常量是放在头文件里面的,具体变量的定义,则是放在源文件里面的。

参考技术A extern

C语言引用另一个源文件中定义的数组

C语言中是可以引用另外一个源文件的全局数组的,但是不能引用局部数组。

 

引用方式举例如下:

  •     设a.c文件有有数据定义

        int  array1[10];

  •     现有b.c文件中想访问a.c中的array1数组

  •     那么b.c文件中首先添加如下语句

        extern int array1[10];

  •     然后就可以访问数组array1和它的元素了。

以上是关于c语言中如何引用另一个源文件中定义的结构数组的主要内容,如果未能解决你的问题,请参考以下文章

C语言引用另一个源文件中定义的数组

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

C语言中如何在多个文件中引用同一个结构体

C中结构体内有一个成员是二维数组,可以直接赋值另一个一维数组吗?

C语言源文件之间的自定义类型(结构体)如何相互引用?

c语言在头文件中如何引用另一个头文件中的函数