钉子电影网站:C语言中如何申明外部定义的结构体数据。

来源:百度文库 编辑:神马品牌网 时间:2024/04/26 13:24:29
C语言中如何申明外部定义的结构体数据
比如在file1.c中定义了一个结构体数组。
/*-------file1.c-----------*/
typedef struct tagSysMenu
{
char *text;
int data[4];
int focs;
}SysMenu;
SysMenu menu[50];
……
需要在file2.c中引用
/*------file2.c------*/
请问如何在file2.c中正确的申明该menu[50]数组?

方法一:文件包含
//a.c
#include<stdio.h>
#include<stdlib.h>
#include"c.c"
main()
{
int b;
g->v=1;
b=a(1);
printf("%d",g->v);
}

//c.c
#include<stdio.h>

int a(int x)
{

printf("%d",x);
return 0;
}
方法2;头文件
//a.c
#include<stdio.h>
#include<stdlib.h>
#include "b.h"
main()
{
int b;
g->v=1;
b=a(1);
printf("%d",g->v);
}

//b.h定义一个头文件
int a(int x);
struct gg;

//c.c
#include<stdio.h>

int a(int x)
{

printf("%d",x);
return 0;
}

struct gg
{
int v;
}*g;

方法3:外部变量
//c.c
#include<stdio.h>
extern b
typedef struct gg
{
int v;
}b,*g;

试一下#inlcude"file1.c"
这时候file1.c要求和file2.c放在同一文件夹内.

在file2.c中,使用语句#include "file1.c",file2.c中应该能够使用SysMenu结构体数据以及file1.c中其他数据和函数,试试看。