找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2533|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

pic單片機static STATUS_VAL ai是static的什么用法?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:227494 發(fā)表于 2018-8-20 16:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
用的pic單片機,ai定義為空函數(shù)

2018-08-20_160531.jpg (9.82 KB, 下載次數(shù): 51)

2018-08-20_160531.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:155507 發(fā)表于 2018-8-20 22:42 | 只看該作者
static STATUS_VAL ai表示定義一個STATUS_VAL型的變量ai,其為靜態(tài)變量,只初始化一次即可。

static表示靜態(tài)的,當程序運行時這個變量就在內(nèi)存中開辟地址了.當這個變量在某函數(shù)內(nèi)定義時,不象自動變量那樣,當調(diào)用時就存在,退出函數(shù)時就消失。靜態(tài)局部變量始終存在著,也就是說它的生存期為整個源程序。
對基本類型的靜態(tài)局部變量若在說明時未賦以初值,則系統(tǒng)自動賦予0值。而對自動變量不賦初值,則其值是不定的,非靜態(tài)局部變量在函數(shù)關(guān)閉后重新打開時就會重置初始值,而靜態(tài)變量的值和函數(shù)本身的調(diào)用無關(guān),始終存在.
回復(fù)

使用道具 舉報

板凳
ID:155507 發(fā)表于 2018-8-20 22:55 | 只看該作者
函數(shù)定義了兩個靜態(tài)變量,1個 unsigned char 類型,1個自定義的結(jié)構(gòu)體類型

typedef struct
{
        unsigned char state;
        unsigned char time_target;
        unsigned char temp;
        unsigned char i;
} STATUS_VAL;


聲明了一個名為 ai 的變量,該變量具有以下性質(zhì):
① 靜態(tài)存儲類型(在程序執(zhí)行過程一直存在)
       第一次進入到 ai() 函數(shù)時,定義一個類型為 STATUS_VAL 的變量 ai,并且在跳出 ai() 函數(shù)時不丟棄該變量。
       第二次以及之后進入到 ai() 函數(shù)時不再定義變量 ai。STATUS_VAL 是定義的結(jié)構(gòu)類型名,相當于 int,char,double 之類的。

② 塊作用域(從 ai() 函數(shù)的 左花括號{ 到 ai 函數(shù)的 右花括號} )
      只能在 ai() 函數(shù)的代碼塊中訪問變量 ai。


回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表