在項目中基本都會遇到全局變量,隨便放很容易忘記變量的使用,也不方便后續的閱讀,就需要對全局變量進行統一管理,下面就用個簡單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
從匯編代碼訪問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次下載
分析如何遠離漫天飛舞的全局變量
剛剛開始用C或者其他面向對象編程語言(比如C++)的小伙伴們,常常在一個項目里為了圖省事,整了很多全局對象、全局變量滿天飛,這樣做其實是有很多弊端,本文來聊聊這個話題。 先談談
C語言中局部變量和全局變量
全局變量也稱為外部變量,它是在函數外部定義的變量。它不屬于哪一個函數,它屬于一個源程序文件。其作用域是整個源程序。在函數中使用
全局變量被未知原因改變的解決方法
誰調用了2.全局變量字節未對齊:有一次調試的時候發現一個變量定義成局部變量就能正常運行,而定義成全局變量就不能運行了。局部
發表于 12-20 18:47
?27次下載
全局變量與全局訪問之間的差異
簡單說,全局變量、局部變量是變量自身的身份。身份的不同是靠出生地決定的。而能否被全能局訪問,能被多大范圍空間訪問,即首篇文章中講到的作用域,是完全不同的概念。不能混而等同之。
全局變量太多有哪些弊端?
隨著全局變量的增多,不同模塊的變量名可能會產生沖突或混淆,導致代碼難以理解和維護。同時,全局變量使得代碼中的依賴關系變得復雜,難以追蹤和理解。這增加了新開發人員的學習成本,也增加了修改和調試的難度。
發表于 04-24 09:15
?952次閱讀
評論