这是关于C语言的问题:如何实现跨文件调用结构体变量. 100
也就是调用结构体.头文件需要#include来引用而#include是宏定义里的文件包含.注定头文件只能包含在某个文件里不能实现像外部变量那样被其他文件调用....
也就是调用结构体.
头文件需要#include来引用而#include是宏定义里的文件包含.注定头文件只能包含在某个
文件里不能实现像外部变量那样被其他文件调用. 展开
头文件需要#include来引用而#include是宏定义里的文件包含.注定头文件只能包含在某个
文件里不能实现像外部变量那样被其他文件调用. 展开
4个回答
展开全部
写个头文件 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);/*调用了*/
}
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不能调用.
展开全部
建立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
*/
编译源文件,然后建立两个头文件(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
*/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用外部定义变量,如
extern strucr bingzhong
{
int sudu ;//速度
int shengming;//生命
int gongji;//攻击
int fangyu;//防御
}bz[20];
上面的代码写在不是主函数所在的文件里,头文件也可以使.c,但不能有主函数
extern strucr bingzhong
{
int sudu ;//速度
int shengming;//生命
int gongji;//攻击
int fangyu;//防御
}bz[20];
上面的代码写在不是主函数所在的文件里,头文件也可以使.c,但不能有主函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将结构体变量写在头文件中,然后包含该头文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询