找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

pic單片機(jī)static STATUS_VAL ai是static的什么用法?

查看數(shù): 2536 | 評(píng)論數(shù): 2 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2018-8-20 16:12

正文摘要:

用的pic單片機(jī),ai定義為空函數(shù)

回復(fù)

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

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


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

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


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

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

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

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

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