c 中结构体变量 如何在其他c文件中声明
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c 中结构体变量 如何在其他c文件中声明相关的知识,希望对你有一定的参考价值。
比如我在一个项目中有 stu.c,mm.c 两个c文件,在 stu.c 文件中定义如下一个结构体变量:
typedef struct student
int num;
char name[20];
char sex;
int age;
char addr[30];
struct student stu1=112,"wanglin",m,19,"200 Beijing";
那么我在 mm.c 中要引用并且对此结构体变量的数据进行修改,如何在 mm.c 中声明才能引用呢?
例如定义一个按键属性结构体(包含 是否有按键值更新(renew)和按键值(num)两个成员)
struct Key_attribute
unsigned char renew;
unsigned char num;
参考技术A 你可以在 mm.c中用extern声明下,即extern struct student stu1 就可以了。追问
但是报警“unknown struct/union/enum tag”怎么解决啊?声明不行啊
参考技术B extern struct student stu1; 就可以了本回答被提问者采纳c语言如何在多个c文件里同时使用一个结构体?
在多个c文件里同时使用一个结构体内的所有变量,就是一个结构体内的所有变量的值在各个c文件内都一样,同步使用
可以使用全局变量,例如:头文件声明:struct MyStruct.......; 在源文件3声明定义变量:Mystruct my_1; 在原文件1,2的文件头声明,extern Mystruct my_1(表示该变量是在其它文件中声明定义的),那么这三个文件使用的都是同一个全局变量 参考技术A struct name
int x;
double y;
type a;
type b;
用的时候要用struct name c;
c.x是c的成员x
可以定义别名
typedef struct name Name;
Name c;
或者直接定义别名
typedef struct
int a;
int b;
Name;
以上是关于c 中结构体变量 如何在其他c文件中声明的主要内容,如果未能解决你的问题,请参考以下文章