c語(yǔ)言函數(shù)中的static變量?理解與應(yīng)用
大家好,感謝邀請(qǐng),今天來(lái)為大家分享一下c語(yǔ)言函數(shù)中的static變量?理解與應(yīng)用的問(wèn)題,以及和c 語(yǔ)言 static的一些困惑,大家要是還不太明白的話(huà),也沒(méi)有關(guān)系,因?yàn)?..
大家好,感謝邀請(qǐng),今天來(lái)為大家分享一下c語(yǔ)言函數(shù)中的static變量?理解與應(yīng)用的問(wèn)題,以及和c 語(yǔ)言 static的一些困惑,大家要是還不太明白的話(huà),也沒(méi)有關(guān)系,因?yàn)榻酉聛?lái)將為大家分享,希望可以幫助到大家,解決大家的問(wèn)題,下面就開(kāi)始吧!
文章目錄:
C語(yǔ)言中,變量到底是個(gè)什么概念?
C語(yǔ)言中的變量是指在程序運(yùn)行時(shí)其值可以改變的量,變量的功能就是存儲(chǔ)數(shù)據(jù)。變量有三個(gè)基本要素:變量名:每一個(gè)變量都應(yīng)該有一個(gè)名字。變量的數(shù)據(jù)類(lèi)型:每一個(gè)變量都應(yīng)具有一種數(shù)據(jù)類(lèi)型(在定義時(shí)指定)內(nèi)存中占據(jù)一定的儲(chǔ)存空間 變量的值:變量對(duì)應(yīng)的存貯空間中所存放的數(shù)。
c語(yǔ)言的變量定義如下:變量是內(nèi)存或寄存器中用一個(gè)標(biāo)識(shí)符命名的存儲(chǔ)單元,可以用來(lái)存儲(chǔ)一個(gè)特定類(lèi)型的數(shù)據(jù),并且數(shù)據(jù)的值在程序運(yùn)行過(guò)程中可以進(jìn)行修改。變量是一個(gè)標(biāo)識(shí)符或者名稱(chēng)。為了方便,程序員在給變量命名時(shí),會(huì)符合大多數(shù)人的習(xí)慣,基本可以望名知義,便于交流和維護(hù)。
變量來(lái)源于數(shù)學(xué),是計(jì)算機(jī)語(yǔ)言中能儲(chǔ)存計(jì)算結(jié)果或能表示值抽象概念。變量可以通過(guò)變量名訪(fǎng)問(wèn)。在指令式語(yǔ)言中,變量通常是可變的;但在純函數(shù)式語(yǔ)言(如Haskell)中,變量可能是不可變(immutable)的。
C51中static的用法
1、static對(duì)函數(shù)的修飾與對(duì)全局變量的修飾相似,只能被本文件中的函數(shù)調(diào)用,而不能被同一程序其它文件中的函數(shù)調(diào)用。
2、static的用法是,定義一個(gè)局部變量,該變量只進(jìn)行一次初始化,在程序運(yùn)行期間一直占用著內(nèi)存,每次調(diào)用完畢都保持本次調(diào)用完后得到的值(而auto調(diào)用完一次即釋放內(nèi)存,下次調(diào)用用從新進(jìn)行初始化)。
3、靜態(tài)變量只是在第一次使用的時(shí)候初始化,如果是全局變量,則加static與否結(jié)果相同。如果是局部變量,則其他模塊訪(fǎng)問(wèn)不到。靜態(tài)函數(shù)只有在本編譯文件中才能被調(diào)用。其他c文件則不能調(diào)用。因此在其他文件中可以申明同名函數(shù),而不互相影響。
4、用t0計(jì)時(shí),要確保第一個(gè)中斷是上部到位,如不能保證就用2個(gè)外部中斷吧。并且2次中斷間隔不能超過(guò)6536ms(12MHz),如超過(guò)就用t0中斷計(jì)時(shí)。思路就是上部中斷清零TH0、TL0,下部中斷統(tǒng)計(jì)。
5、對(duì)應(yīng)的中斷號(hào)為0、4;寄存器有4個(gè)工作組可以切換,為0-3;C51中,中斷服務(wù)程序是以中斷函數(shù)的方式來(lái)時(shí)實(shí)現(xiàn)的。
c語(yǔ)言中什么是靜態(tài)局部變量?
1、局部靜態(tài)變量。是在函數(shù)內(nèi)部聲明的靜態(tài)變量。局部靜態(tài)變量的值有一個(gè)特性,它會(huì)保存你操作的結(jié)果。
2、如果int a定義在函數(shù)外,(包括main函數(shù))那么它就是全局變量,在函數(shù)內(nèi)的就是局部變量。
3、static在c語(yǔ)言中是私有、靜態(tài)意思。用于在函數(shù)中聲明“靜態(tài)變量”用,在每一次調(diào)用后,該變量并不在函數(shù)返回時(shí)立即釋放,變量中保存的值,可以保留到下一次調(diào)用時(shí)繼續(xù)有效。私有就是隱藏。static函數(shù)只能聲明后的本文中調(diào)用。static全局變量只能聲明后的本文中調(diào)用。
4、局部變量是指在函數(shù)內(nèi)部說(shuō)明的變量(有時(shí)也稱(chēng)為自動(dòng)變量)。用關(guān)鍵字auto進(jìn) 行說(shuō)明, 當(dāng)auto省略時(shí), 所有的非全程變量都被認(rèn)為是局部變量, 所以auto實(shí)際上 從來(lái)不用。static static稱(chēng)為靜態(tài)變量。根據(jù)變量的類(lèi)型可以分為靜態(tài)局部變量和靜態(tài)全程變量。
5、C語(yǔ)言中的靜態(tài)關(guān)鍵字static有著多種用途,能夠優(yōu)化程序結(jié)構(gòu)和提升性能。本文將詳細(xì)介紹靜態(tài)關(guān)鍵字在局部變量、全局變量和函數(shù)中的三種用法。 局部變量 靜態(tài)局部變量在編譯時(shí)即被分配空間并初始化,即使函數(shù)結(jié)束,它們依然保持存在。初始化默認(rèn)為0,如:`static int a = 0;`。
文章分享結(jié)束,c語(yǔ)言函數(shù)中的static變量?理解與應(yīng)用和c 語(yǔ)言 static的答案你都知道了嗎?歡迎再次光臨本站哦!
本文鏈接:http://xinin56.com/bian/228374.html