吴忠躺衫网络科技有限公司

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

    文章

    4825

    瀏覽量

    69043
  • 全局變量
    +關注

    關注

    1

    文章

    28

    瀏覽量

    9003

原文標題:框架|集中數據管理

文章出處:【微信號:玩轉單片機,微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    關于全局變量和功能全局變量的創建和使用

    關于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 ?1679次閱讀

    分析如何遠離漫天飛舞的全局變量

    剛剛開始C或者其他面向對象編程語言(比如C++)的小伙伴們,常常在一項目里為了圖省事,整了很多全局對象、全局變量滿天飛,這樣做其實是有很多弊端,本文來聊聊這個話題。 先談談
    的頭像 發表于 09-15 13:49 ?1700次閱讀

    C語言中局部變量全局變量

    全局變量也稱為外部變量,它是在函數外部定義的變量。它不屬于哪一函數,它屬于一源程序文件。其作用域是整個源程序。在函數中使用
    的頭像 發表于 10-15 10:48 ?5654次閱讀

    詳解LABVIEW中的局部變量全局變量

    本文檔的主要內容詳細介紹的是LABVIEW初級教程之局部變量全局變量的詳細資料說明。
    發表于 03-29 15:00 ?26次下載

    全局變量被未知原因改變的解決方法

    誰調用了2.全局變量字節未對齊:有一次調試的時候發現一變量定義成局部變量就能正常運行,而定義成全局變量就不能運行了。局部
    發表于 12-20 18:47 ?27次下載
    <b class='flag-5'>全局變量</b>被未知原因改變的解決方法

    全局變量全局訪問之間的差異

    簡單說,全局變量、局部變量變量自身的身份。身份的不同是靠出生地決定的。而能否被全能局訪問,能被多大范圍空間訪問,即首篇文章中講到的作用域,是完全不同的概念。不能混而等同之。
    的頭像 發表于 11-14 11:21 ?1250次閱讀

    RTOS任務間通信為什么不用全局變量

    RTOS任務間通信為什么不用全局變量?原因在于使用全局變量存在諸多弊端。
    發表于 07-05 09:06 ?859次閱讀

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

    隨著全局變量的增多,不同模塊的變量名可能會產生沖突或混淆,導致代碼難以理解和維護。同時,全局變量使得代碼中的依賴關系變得復雜,難以追蹤和理解。這增加了新開發人員的學習成本,也增加了修改和調試的難度。
    發表于 04-24 09:15 ?952次閱讀
    百家乐凯时娱乐场| 网上百家乐官网好玩吗| 百家乐官网最新套路| 至尊百家乐官网奇热网| 大发888资讯网net| 欧博线上娱乐| 百家乐官网玩法教学视频| 百家乐官网赌场软件| 百家乐官网桌子10人| 八卦24山叫什么意思是什么| 百家乐必赢法冯耘| 大发888游戏平台188| 百家乐官网视频游戏界面| 百家乐官网破战| 百家乐记算| 海王星线上娱乐| 百家乐官网赌场讨论群| 娱乐城百家乐打不开| 大发888更名网址622| 百家乐官网怎么样投注| 百家乐平台哪个有在线支付呢| 大发888手机游戏| 百家乐官网麻关于博彩投注| 百家乐是赌博吗| 皇冠现金网是真的吗| 百家乐官网币| 百家乐单机版游戏下载| 新盈国际| 玩百家乐官网掉房| 大发888方官| 哪个百家乐官网技巧平台信誉好| 视频百家乐破解| 网上博彩网址| 百家乐官网怎样赢| 大发888攻略| 百家乐奥| 大东方百家乐官网游戏| 菲律宾百家乐排行| 金冠百家乐官网娱乐城| 百家乐视频赌博| 在线百家乐官网娱乐|