首页IT科技在一个c源程序中所定义的全局变量是什么(一个.c文件中声明全局变量的结构体,另一个.c的文件中调用函数修改它_百度知道)

在一个c源程序中所定义的全局变量是什么(一个.c文件中声明全局变量的结构体,另一个.c的文件中调用函数修改它_百度知道)

时间2025-04-28 22:05:32分类IT科技浏览5473
导读:一个.c文件中声明全局变量的结构体,另一个.c的文件中调用函数修改它...

一个.c文件中声明全局变量的结构体            ,另一个.c的文件中调用函数修改它

| 浏览次数:1326次

结构体:

struct motor

{

INT16S goal_speed;//

INT16S current_speed;//

};

extern struct motor X,Y;//全局变量

调用函数:refresh_status(&X);

函数:

void refresh_status(struct motor *ptr);//状态刷新函数

{

INT16S i;

i=ptr->goal_speed - ptr->current_speed;//这里做减法运算

}

麻烦大家看下哪里出问题了呢?谢谢了!

问题补充:

换成i=X.goal_speed - X.current_speed;也不行..

我来帮他解答

2011-9-4 00:09

满意回答

应该分为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);

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
pycharm读取matlab(python怎么打开mat文件?) 法国vps租用方法是什么(法国vps租用方法是什么)