c51 微控制器 區域性變數 問題,C51 微控制器 區域性變數 問題

2022-02-16 12:00:53 字數 1324 閱讀 1755

1樓:一萬光年

為了**整體的安全,還是初始化一下。有時會被編譯器初始化為0的,但不是總是。

微控制器區域性變數定義

2樓:詹琭寒坤

這個問題要回歸到區域性變數的定義,我翻下書給你看書上的定義:區域性變數也稱內部變數,是在函式內部定義。其作用越限於函式內,離開函式後在使用就屬於非法,因為記憶體已釋放。

摘自《微控制器原理及應用設計》胡學海。就是區域性變數在多都不怕,你函式/子程式執行玩會自動釋放的,不必擔心會影響到微控制器那可憐的儲存域。謝謝!

3樓:

void main()

你那個 uint a要在函式最開始定義。

其他環境我不清楚,反正在c51裡,變數定義之前,不允許有執行語句的存在。

我的c語言是在vc++ 的控制檯下學習的,剛轉到51時,也曾經犯過你這種錯誤,當時找了很久才發現。

c51,包括 keil在內的其他微控制器的c語言,都不允許在定義變數之前有執行語句的存在,如果你在變數定義之前定義巨集是可以的,但是不能出現執行語句。

51微控制器變數 51的微控制器變數是怎麼個定義法。全域性變數,區域性變數都放在什麼儲存器裡的

51微控制器組合語言如何定義區域性變數?高手幫幫忙……

4樓:匿名使用者

一般都用r0-r7,

在進入子程式時先將需要用到的r0-r7入棧,然後就可以改變r0-r7的值

返回前將r0-r7從堆疊中恢復。

5樓:做而論道

51微控制器組合語言如何宣告區域性變數?

--用 equ 偽指令,即可。

51微控制器定義或宣告一個變數在程式執行時是否需要時間?

--偽指令,不佔用微控制器的時間。

或是定義一個變數,這條指令的執行時間是多少?

--零秒。

--偽指令,不用微控制器執行。

6樓:匿名使用者

定義一個區域性變數a,編譯器會將a的地址分配到暫存器組r0~r7中去。由於它是區域性變數,所以編譯器將使用立即數賦值語句為代表a的暫存器rn賦值,最後計算的結果也將存在暫存器組中,位置由編譯器任意指定。

定義一個全域性變數a,編譯器將在ram中為變數a指定一個專用地址,在c程式中給a賦的值將存入這個專用地址中。程式操作變數a時,首先從專用地址中取出存放的值,然後再進行計算。

7樓:亂七胡說八糟亂想

51微控制器在彙編中無法由你先定區域性變數。只有你在編 程使用過程 中你自己注意使用,最好的就是用切換暫存器區來快速 轉換使用。

c51微控制器程式設計中斷問題,中斷後不能繼續返回main函式

void int1 srv interrupt 2 int1中斷服務函式,中斷向量標號2 my delay 10ms 1 延時消抖key bit 1 讀mcs51的io口之前要先對其置1if key bit 0 按鍵仍然是按下狀態 while key bit 0 等待按鍵抬起這部分就不用了。使用邊沿...

學習微控制器要學習c語言還是c51,如果要學c51,能不能一本好的教材

談談我的經歷吧。bai一個沒有c基礎的的du我,zhi師兄老師讓我跟著 王雲 就當抄前的微控制器發展水平和開發技術而bai言,學習微控制器當然要學du習c語言,zhi如果學習51微控制器開發,就是學習c51。教材有dao c51微控制器高階語言程式設計應用實踐 微控制器高階語言c51應用程式設計 微...

請問各位大蝦!c51微控制器中,寫主函式時寫成void main()和寫成main()有什麼區別

這個在51微控制器中是體現不出來的,要在有作業系統的時候,系統在呼叫程式的時候,有返回值可以判斷程式是否正確執行。沒有區別,main 就是預設空返回值,跟void main 是一樣的 void 表示空型別 void main 比 main 更符合格式要求。在效果上是一樣的。void是指函式無返回值,...