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


    一个.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);


  • 相关阅读:
    GO語言基礎教程:數組,切片,map
    GO語言視頻教程下載
    GO語言基礎教程:流程控制
    GO語言基礎教程:數據類型,變量,常量
    GO語言基礎教程:Hello world!
    GO語言基礎教程:序章
    騰訊RTX的API開發,給RTX開個天窗
    RTX的api開發實例
    [轉]redis;mongodb;memcache三者的性能比較
    [轉載]史上最强php生成pdf文件,html转pdf文件方法
  • 原文地址:https://www.cnblogs.com/lexus/p/2578774.html
Copyright © 2020-2023  润新知