写个头文件 c.h 声明 一个结构体类型
struct STU
{
int x;
int y;
};
定义结构体变量s的文件b.c
#include "c.h"
struct STU s; /* 不加extern ,默认认为extern */
a.c 调用b.c里定义的全局变量s
#include
#include "c.h" /* struct STU这个类型的定义(或者说声明)在这个头文件里 */
extern struct STU s;/* 声明它是外部的类型是struct STU */
int main()
{
printf("s.x+s.y = %d+%d = %d\n",s.x,s.y,s.x+s.y);/*调用了*/
}
建立cpp文件(A.cpp)
编译源文件,然后建立两个头文件(A.h和B.h),都要添加到工程A中去
在B.h中添加如下代码
typedef struct _P_Point
{
int x;
int y;
}POINT, PPoint;
A.h中添加如下代码
#include "B.h"
// 注意这里的头文件引用要用""
void showInfo(POINT pt);
A.cpp文件中添加如下代码
#include
#include "A.h"
int main(void)
{
POINT pt;
pt.x = 10;
pt.y = 20;
showInfo(pt);
return 0;
}
void showInfo(POINT pt)
{
printf("point = (%d, %d)\n", pt.x, pt.y);
return ;
}
重新编译运行得到结果为
#include
#include "A.h"
int main(void)
{
POINT pt;
pt.x = 10;
pt.y = 20;
showInfo(pt);
return 0;
}
void showInfo(POINT pt)
{
printf("point = (%d, %d)\n", pt.x, pt.y);
return ;
}
/*
VC 6.0
point = (10, 20)
Press any key to continue
*/
使用外部定义变量,如
extern strucr bingzhong
{
int sudu ;//速度
int shengming;//生命
int gongji;//攻击
int fangyu;//防御
}bz[20];
上面的代码写在不是主函数所在的文件里,头文件也可以使.c,但不能有主函数
将结构体变量写在头文件中,然后包含该头文件