0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用个简单demo实现对全局变量的管理

玩转单片机 来源:玩转单片机 作者:玩转单片机 2022-11-10 11:01 次阅读

在项目中基本都会遇到全局变量,随便放很容易忘记变量的使用,也不方便后续的阅读,就需要对全局变量进行统一管理,下面就用个简单demo,实现对全局变量的管理:

#include "stdio.h"


// 定义枚举
typedef enum
{
  data1, data2,
}typeDataName_t;


// 定义结构体
typedef struct
{
  void (*setState)(typeDataName_t, unsigned char);
  unsigned char (*getState)(typeDataName_t);
  unsigned char state[2];
}typeCharData_t;


void setState(typeDataName_t name, unsigned char param );
unsigned char getState(typeDataName_t name);


// 初始化结构体
typeCharData_t charData = {
  setState,
  getState,
  {0, 0},
};


// 设置
void setState(typeDataName_t name, unsigned char param ){
    charData.state[name] = param;
}


// 获取
unsigned char getState(typeDataName_t name){
    return charData.state[name];
}


int main()
{
  printf("%d
",charData.state[0]);
  printf("%d
",charData.state[1]);
  charData.setState(data1, 10);
  charData.setState(data2, 20);
  printf("%d
",charData.getState(data1));
  printf("%d
",charData.getState(data2));
}

合理在项目中使用,可以提高代码的可读性,就算那天真的忘记了,也可以根据代码逻辑,回想业务逻辑的实现;

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4782

    浏览量

    68546
  • 全局变量
    +关注

    关注

    1

    文章

    28

    浏览量

    8966

原文标题:框架|集中数据管理

文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    关于全局变量和功能全局变量的创建和使用

    关于LabVIEW中的全局变量,很多教程和网上的资料都讲的很简单,功能全局变量讲得更少,对于新手来说,理解和使用还是比较困难的。因此今天来详细说一说他们的使用。这里就不说全局变量和功
    发表于 01-25 20:58

    功能全局变量的理解与使用

    LabVIEW初学者,对功能全局变量的使用仍不理解,求分享一LabVIEW关于功能全局变量使用的demo。这边上传一书中介绍的功能
    发表于 08-01 20:42

    static作用(修饰函数、局部变量全局变量

    详细介绍了static作用(修饰函数、局部变量全局变量)的用法
    发表于 11-17 10:30 4次下载

    Labview之全局变量

    Labview之全局变量,很好的Labview资料,快来下载学习吧。
    发表于 04-19 10:56 0次下载

    从汇编代码访问C全局变量

    12.2 从汇编代码访问 C target=_blank style=cursor:pointer;color:#D05C38;text-decoration:underline;》C 全局变量
    发表于 10-19 09:25 0次下载

    教大家一如何在头文件中定义全局变量的方法

    通常情况下,都是在C文件中定义全局变量,在头文件中声明,但是,如果我们定义的全局变量需要被很多的C文件使用的话,那么将全局变量定义在头文件里面会方便很多,那到底是如何实现的? os_v
    发表于 12-04 14:55 19次下载

    全局变量和局部变量有什么区别

    全局变量是编程术语中的一种,源自于变量之分。变量分为局部与全局,局部变量又可称之为内部变量。局部
    发表于 12-11 11:58 3.3w次阅读
    <b class='flag-5'>全局变量</b>和局部<b class='flag-5'>变量</b>有什么区别

    在C语言中,全局变量滥用的后果是什么

    01 啥是全局变量 说起全局变量,就不得不提到全局变量,局部变量,静态全局变量,静态局部变量,这
    发表于 06-24 17:14 1656次阅读

    分析如何远离漫天飞舞的全局变量

    刚刚开始C或者其他面向对象编程语言(比如C++)的小伙伴们,常常在一项目里为了图省事,整了很多全局对象、全局变量满天飞,这样做其实是有很多弊端,本文来聊聊这个话题。 先谈谈
    的头像 发表于 09-15 13:49 1640次阅读

    C语言中局部变量全局变量

    全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一函数,它属于一源程序文件。其作用域是整个源程序。在函数中使用
    的头像 发表于 10-15 10:48 5537次阅读

    详解LABVIEW中的局部变量全局变量

    本文档的主要内容详细介绍的是LABVIEW初级教程之局部变量全局变量的详细资料说明。
    发表于 03-29 15:00 26次下载

    全局变量被未知原因改变的解决方法

    谁调用了2.全局变量字节未对齐:有一次调试的时候发现一变量定义成局部变量就能正常运行,而定义成全局变量就不能运行了。局部
    发表于 12-20 18:47 27次下载
    <b class='flag-5'>全局变量</b>被未知原因改变的解决方法

    全局变量全局访问之间的差异

    简单说,全局变量、局部变量变量自身的身份。身份的不同是靠出生地决定的。而能否被全能局访问,能被多大范围空间访问,即首篇文章中讲到的作用域,是完全不同的概念。不能混而等同之。
    的头像 发表于 11-14 11:21 1199次阅读

    RTOS任务间通信为什么不用全局变量

    RTOS任务间通信为什么不用全局变量?原因在于使用全局变量存在诸多弊端。
    发表于 07-05 09:06 820次阅读

    全局变量太多有哪些弊端?

    随着全局变量的增多,不同模块的变量名可能会产生冲突或混淆,导致代码难以理解和维护。同时,全局变量使得代码中的依赖关系变得复杂,难以追踪和理解。这增加了新开发人员的学习成本,也增加了修改和调试的难度。
    发表于 04-24 09:15 880次阅读