0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用個(gè)簡(jiǎn)單demo實(shí)現(xiàn)對(duì)全局變量的管理

玩轉(zhuǎn)單片機(jī) ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 作者:玩轉(zhuǎn)單片機(jī) ? 2022-11-10 11:01 ? 次閱讀

在項(xiàng)目中基本都會(huì)遇到全局變量,隨便放很容易忘記變量的使用,也不方便后續(xù)的閱讀,就需要對(duì)全局變量進(jìn)行統(tǒng)一管理,下面就用個(gè)簡(jiǎn)單demo,實(shí)現(xiàn)對(duì)全局變量的管理:

#include "stdio.h"


// 定義枚舉
typedef enum
{
  data1, data2,
}typeDataName_t;


// 定義結(jié)構(gòu)體
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);


// 初始化結(jié)構(gòu)體
typeCharData_t charData = {
  setState,
  getState,
  {0, 0},
};


// 設(shè)置
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));
}

合理在項(xiàng)目中使用,可以提高代碼的可讀性,就算那天真的忘記了,也可以根據(jù)代碼邏輯,回想業(yè)務(wù)邏輯的實(shí)現(xiàn);

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4722

    瀏覽量

    68229
  • 全局變量
    +關(guān)注

    關(guān)注

    1

    文章

    28

    瀏覽量

    8951

原文標(biāo)題:框架|集中數(shù)據(jù)管理

文章出處:【微信號(hào):玩轉(zhuǎn)單片機(jī),微信公眾號(hào):玩轉(zhuǎn)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于全局變量和功能全局變量的創(chuàng)建和使用

    關(guān)于LabVIEW中的全局變量,很多教程和網(wǎng)上的資料都講的很簡(jiǎn)單,功能全局變量講得更少,對(duì)于新手來(lái)說(shuō),理解和使用還是比較困難的。因此今天來(lái)詳細(xì)說(shuō)一說(shuō)他們的使用。這里就不說(shuō)全局變量和功
    發(fā)表于 01-25 20:58

    功能全局變量的理解與使用

    LabVIEW初學(xué)者,對(duì)功能全局變量的使用仍不理解,求分享一個(gè)LabVIEW關(guān)于功能全局變量使用的demo。這邊上傳一個(gè)書中介紹的功能
    發(fā)表于 08-01 20:42

    static作用(修飾函數(shù)、局部變量全局變量

    詳細(xì)介紹了static作用(修飾函數(shù)、局部變量全局變量)的用法
    發(fā)表于 11-17 10:30 ?4次下載

    Labview之全局變量

    Labview之全局變量,很好的Labview資料,快來(lái)下載學(xué)習(xí)吧。
    發(fā)表于 04-19 10:56 ?0次下載

    從匯編代碼訪問(wèn)C全局變量

    12.2 從匯編代碼訪問(wèn) C target=_blank style=cursor:pointer;color:#D05C38;text-decoration:underline;》C 全局變量
    發(fā)表于 10-19 09:25 ?0次下載

    教大家一個(gè)如何在頭文件中定義全局變量的方法

    通常情況下,都是在C文件中定義全局變量,在頭文件中聲明,但是,如果我們定義的全局變量需要被很多的C文件使用的話,那么將全局變量定義在頭文件里面會(huì)方便很多,那到底是如何實(shí)現(xiàn)的? os_v
    發(fā)表于 12-04 14:55 ?19次下載

    全局變量和局部變量有什么區(qū)別

    全局變量是編程術(shù)語(yǔ)中的一種,源自于變量之分。變量分為局部與全局,局部變量又可稱之為內(nèi)部變量。局部
    發(fā)表于 12-11 11:58 ?3.2w次閱讀
    <b class='flag-5'>全局變量</b>和局部<b class='flag-5'>變量</b>有什么區(qū)別

    在C語(yǔ)言中,全局變量濫用的后果是什么

    01 啥是全局變量 說(shuō)起全局變量,就不得不提到全局變量,局部變量,靜態(tài)全局變量,靜態(tài)局部變量,這
    發(fā)表于 06-24 17:14 ?1634次閱讀

    分析如何遠(yuǎn)離漫天飛舞的全局變量

    剛剛開始C或者其他面向?qū)ο缶幊陶Z(yǔ)言(比如C++)的小伙伴們,常常在一個(gè)項(xiàng)目里為了圖省事,整了很多全局對(duì)象、全局變量滿天飛,這樣做其實(shí)是有很多弊端,本文來(lái)聊聊這個(gè)話題。 先談?wù)?/div>
    的頭像 發(fā)表于 09-15 13:49 ?1593次閱讀

    C語(yǔ)言中局部變量全局變量

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

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是LABVIEW初級(jí)教程之局部變量全局變量的詳細(xì)資料說(shuō)明。
    發(fā)表于 03-29 15:00 ?26次下載

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

    誰(shuí)調(diào)用了2.全局變量字節(jié)未對(duì)齊:有一次調(diào)試的時(shí)候發(fā)現(xiàn)一個(gè)變量定義成局部變量就能正常運(yùn)行,而定義成全局變量就不能運(yùn)行了。局部
    發(fā)表于 12-20 18:47 ?27次下載
    <b class='flag-5'>全局變量</b>被未知原因改變的解決方法

    全局變量全局訪問(wèn)之間的差異

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

    RTOS任務(wù)間通信為什么不用全局變量?

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

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

    隨著全局變量的增多,不同模塊的變量名可能會(huì)產(chǎn)生沖突或混淆,導(dǎo)致代碼難以理解和維護(hù)。同時(shí),全局變量使得代碼中的依賴關(guān)系變得復(fù)雜,難以追蹤和理解。這增加了新開發(fā)人員的學(xué)習(xí)成本,也增加了修改和調(diào)試的難度。
    發(fā)表于 04-24 09:15 ?806次閱讀