C语言中如何申明外部定义的结构体数据。

来源:百度知道 编辑:UC知道 时间:2024/05/17 05:27:23
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"