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是指函式無返回值,...