• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






Re: 初學者 Mplab C18 一個問題?關於變數的使用問題
#3
高級會員
高級會員


查看用戶資訊
沒錯 ! 沒錯 ! 在C裡的變數會有所謂的生命週期的問題 , 例三的變數C只有在MAIN裡才存在 , 而且是放在堆疊裡 , 而且每次的位置都不一定一樣 , 而例二的靜態變數是一直存在的及例一的全域變數都是佔用實質的位址 , 所以資料的存取都不會有問題 , 其實MCU寫C的一點觀念和PC的C++不太一樣 , 最好在MCU中都宣告成全域變數 , 就是在函式外宣告 , 有幾個好處 ,
MCU的RAM就是那麼多 , 你不用它還是在那邊 , 不會因為你不用就會比較便宜 , 還有 , 如果你常用區域變數宣告的話 , COMPILER都會用堆疊的方式處理 , 真正執行的時侯 , 堆疊指標的處理 , BANK的處理都會花掉一些指令 , 也許真正的動作只有兩三個指令 , 結果光是堆疊的處理可能就會花掉三四十個指令 , 這是有可能的 , 因為我遇過........ , 所以 , 變數宣告成全域只有好處 , 不會比較壞 , 除非真的用到只剩下幾個RAM , 非斤斤計較不可 , 但是.........寫C還能把RAM用到只剩幾個 , 那也太省了 , 換顆大一點的吧!

發表於: 2005/6/9 13:39
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 初學者 Mplab C18 一個問題?關於變數的使用問題
#2
高級會員
高級會員


查看用戶資訊
變數擺放位置不同, 效果也就不同

1. 若是放在Function裡面宣告, 則只有函數內部可以使用, 如第三個, 因此第三個C=2

2. 若是在函數外面宣告, 則此函數以後都可以使用, 如第一個

3. 變數依程式需求可宣告成不同的等級, 如static 、 auto
extern、 register等等, 當然等級不同, 可以使用的方式便不同, 可以參考C語言的書有詳細說明

發表於: 2005/6/9 7:09
人生最長久的擁有是珍惜 但是大都在失去後才發現
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


初學者 Mplab C18 一個問題?關於變數的使用問題
#1
中級會員
中級會員


查看用戶資訊

char a=1,b=1,c;
main()
{
c=a+b; // c=2 正確
:
}
;-------------------------------------------------
main()
{
static char a=1,b=1,c;
c=a+b; //c=2 正確
:
}
;-------------------------------------------------
main()
{
char a=1,b=1,c;
c=a+b; //c=????
:
}
--------------------------------------------------








發表於: 2005/6/8 13:39
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------