这是关于C语言的问题:如何实现跨文件调用结构体变量. 100

也就是调用结构体.头文件需要#include来引用而#include是宏定义里的文件包含.注定头文件只能包含在某个文件里不能实现像外部变量那样被其他文件调用.... 也就是调用结构体.
头文件需要#include来引用而#include是宏定义里的文件包含.注定头文件只能包含在某个
文件里不能实现像外部变量那样被其他文件调用.
展开
 我来答
veket的小号
推荐于2018-05-01 · TA获得超过3371个赞
知道大有可为答主
回答量:3762
采纳率:0%
帮助的人:3997万
展开全部
写个头文件 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 <stdio.h>
#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);/*调用了*/
}
追问
只实现了结构变量的调用,结构体成员却无法调用.也就是s没问题s.y或s.x不能调用.
qimingxingwen
2012-04-30 · TA获得超过432个赞
知道小有建树答主
回答量:269
采纳率:50%
帮助的人:184万
展开全部
建立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 <stdio.h>
#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 <stdio.h>
#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
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
201007031324
2012-05-04 · TA获得超过1239个赞
知道小有建树答主
回答量:505
采纳率:0%
帮助的人:233万
展开全部
使用外部定义变量,如
extern strucr bingzhong
{
int sudu ;//速度
int shengming;//生命
int gongji;//攻击
int fangyu;//防御
}bz[20];
上面的代码写在不是主函数所在的文件里,头文件也可以使.c,但不能有主函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
164zsq
2012-04-27 · TA获得超过467个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:442万
展开全部
将结构体变量写在头文件中,然后包含该头文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式