1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標(biāo)題: 關(guān)于單片機中斷服務(wù)函數(shù)變量問題 [打印本頁]

作者: 王快活。    時間: 2020-2-27 09:04
標(biāo)題: 關(guān)于單片機中斷服務(wù)函數(shù)變量問題
void Service0(void) interrupt 1
{
        uint i, j;
}
void Service0(void) interrupt 1
{
        static uint i, j;
}
在中斷服務(wù)函數(shù)里使用局部變量和靜態(tài)變量有什么區(qū)別嗎?
在實際程序運行時好像沒有什么不一樣。


作者: k455619    時間: 2020-2-27 12:33
你這種寫法 我真沒用過 你要用靜態(tài)變量 就卸載函數(shù)前面不就好了。。
作者: tyrl800    時間: 2020-2-27 17:22
當(dāng)static關(guān)鍵字修飾局部變量時,只會對該變量初始化一次。

當(dāng)static關(guān)鍵字修飾局部變量時,該變量在程序中只有一份內(nèi)存。

當(dāng)static關(guān)鍵字修飾局部變量時,該變量的作用域不會改變。

當(dāng)static關(guān)鍵字修飾局部變量時,該變量的生命周期被延長,直到程序結(jié)束才銷毀。
作者: hantu    時間: 2020-2-28 09:33
用靜態(tài)變量它只初始化一次,下次中斷進(jìn)入時能繼續(xù)沿用上一次中斷該變量保持的值。
作者: hmgqljz    時間: 2024-4-22 16:14
如是不加STATIC修飾,每進(jìn)一次中斷變量都會重新賦一次初值。
作者: 單片機研究協(xié)會    時間: 2024-4-22 17:24
k455619 發(fā)表于 2020-2-27 12:33
你這種寫法 我真沒用過 你要用靜態(tài)變量 就卸載函數(shù)前面不就好了。。

局部變量,只能在定義的函數(shù)里面使用,進(jìn)入函數(shù)時變量的值不確定,使用前要先初始化一下,退出函數(shù)后被釋放。

靜態(tài)變量就是只能在這個函數(shù)里面使用的全局變量,它有局部變量的特性,也有全局變量的特性,只能在定義的函數(shù)里面使用,再次進(jìn)入函數(shù)時會保持之前的狀態(tài),退出函數(shù)時不會被釋放。

作者: Hephaestus    時間: 2024-4-22 18:05
8位單片機因為資源太有限,c語言編譯器是靜態(tài)分配局部變量的,也就是說局部變量是一個固定的地址,樓主兩種寫法效果大概率會一樣,小概率不一樣是因為為了高效利用RAM,多個函數(shù)可以共用一個局部變量地址,看下map文件就行了。

標(biāo)準(zhǔn)c語言局部變量是在棧上面的,進(jìn)入函數(shù)臨時分配,static局部變量是在堆上面跟全局變量在一起,兩者執(zhí)行起來效果就大不相同了。
作者: rosen111    時間: 2024-4-22 19:58
靜態(tài)變量會保持它的狀態(tài),下一次進(jìn)來依然可以讀取到上一次的數(shù)值,而且只作用于該函數(shù)內(nèi)
作者: 大漠落日    時間: 2024-4-24 18:14
中斷中用靜態(tài)變量,可以在下次進(jìn)中斷時,保持上次的值不變




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1