应该分为3个文件,一个头文件存储结构体定义供其它.c文件使用,一个.c文件中定义全局变量,另一个.c文件中声明使用全局变量,并通过函数修改该全局变量 a.h //存放结构体定义 #ifndef _A_H #define _A_H 1 struct motor { INT16S goal_speed;// INT16S current_speed;// }; #endif def.c //文件用来定义全局变量(注意不是声明,定义是要分配内存的) #include "a.h" struct motor mymotor; //加入其它处理代码 call.c //用来实现操作全局变量的函数 #include "a.h" extern struct motor mymotor; //这是引用外部变量的前置声明,否则直接使用单独编译该文件时会提示变量未定义 void refresh_status(struct motor *ptr);//状态刷新函数 { INT16S i; i=ptr->goal_speed - ptr->current_speed;//这里做减法运算 } 调用方式refresh_status(&mymotor);
原文:http://zhidao.baidu.com/link?url=u6gOQwhGos8_GRQi3Q_Cx627UzZVHlZRCJK_sjFGyRz1HDE74IPJynkJMJ_EZwG94PuKlPHOWwF3mShuPRgSo_
多个C文件都会用到的结构体定义
最新推荐文章于 2024-07-11 16:17:30 发布