導航:首頁 > 操作系統 > 單片機函數指針

單片機函數指針

發布時間:2022-10-29 07:43:20

單片機c語言怎樣用指針訪問code區數組中的某一元素

void
CHcnkDlg::OnButton1()
{
//
TOD
Add
your
control
notification
handler
code
here
char
str[8];
//定義一個字元串數組
,用來存放列表框1中輸入的內容
char
*ptr;
//定義一個指針,用來處理字元串數組中的元素
char
cResult[8];
//定義一個字元串,用來存放列表框1中的數據經過處理後顯示在列表框2中的
內容
m_List1.GetLBText(str,;
//調用GetLBText()函數,獲得列表框1輸入的內容,存放在字元串
數組str

ptr=str+2;
*ptr=0;
m_List2=(LPCTSTR)cResult;
//將結果字元串賦給對象m_List2
UPdateData(FALSE);
//更新屏幕
}
希望可以幫助到你

② 學了51單片機,感覺沒怎麼用到指針,什麼時候才用到指針

不用都可以。我現在只有做顯示電路驅動時用指針取下字型檔或數據,其餘的什麼函數指針,指針嵌套之類的全沒用到。但不影響我的工作。
上位機我會的不多,用的是BCB,但我自己不會主動用指針,一般都是復制來的程序或系統APP函數里用的多點。
指針一般是上位機軟體或大型單片機程序才用的多些,好處就是程序的表述上更好看或更方便調用,對於小程序完全可以不用。

③ //SP=0x60; 為什麼在有些單片機函數中要設置棧指針,設置棧指針有什麼作用SP又是什麼東西呢 先謝了!

棧指針是用來在棧空間定址的,而棧空間其實就是個內存區域,在棧中存入數據的話,sp自動減少,在棧中讀取數據的話,sp自動增加,這就構成了一個後進先出的內存空間
sp其實是一個寄存器,其中只能保存一個指針,而這個指針就指向了棧空間中的最高層,即棧頂

④ 【單片機】 知道函數的地址怎麼調用

還需要知道函數的調用規則,比如:
int fun1(int a,int b) { return a+b; }
int fun2(int a,int b) { return a-b; }
typedef int (*pfun)(int,int);
#define MYFUNCTION1 0x80002000 //假設函數fun1的地址位於0x80002000
#define MYFUNCTION2 0x80003000 //假設函數fun2的地址位於0x80003000
void main()
{ int a=2,b=1,c;
fun=(pfun)MYFUNCTION1; c=(*fun)(a,b);
fun=(pfun)MYFUNCTION2; c=(*fun)(a,b);
}

⑤ C語言的指針,在寫51單片機程序用得上嗎

可以的。
在51單片機的嵌入式C語言中,指針同樣是被支持的。
所以在單片機上一樣可以使用指針操作,具體使用方法,與標准C語言並沒有不同。
不過需要注意的是,使用指針代表著間接定址,相對變數的直接定址,速度要稍慢一些。而單片機運算速度較慢,大量使用指針有可能會降低執行效率,影響效果。所以除非必要,還是少用指針。

⑥ 51單片機函數參數傳指針方式錯誤的問題

主函數就5句話,分別用1、2、3、4、5標識。
你在第1,2句定義了變數並賦值,但是,在第3、4句的時候可能會把第1、2句的東西給誤覆蓋了。因為地址可能有重疊。
可以用兩種辦法去調試:

方法1:在第1、2句只定義變數,不賦值,在第4、5句之間加上這兩句話:a='t';p=&t;

方法2:在DrawSingleAscii內部這三行之後,加上一句:
uchar i, j;
uchar str;
uint OffSet;

*pAscii = 't'; //加上這句
看看是什麼效果。

⑦ 51單片機中,指針函數 在C語言程序 如何使用

你好,比較方便的實現方式是在函數的外部申請數組;在調用函數的時候傳入數組的地址進行操作。如果一定要在子函數內部申請空間並返回地址,那麼需要在子函數內部動態申請內存空間。具體的方法一般是使用標准庫中的malloc函數。對於c51函數庫,參考這個鏈接:http://www.keil.com/support/man/docs/c51/c51_malloc.htm

⑧ 單片機C51,C語言的一個指針問題

P0 = *((uint8 data*)&ledBuff+i);
ledBuff是緩沖區的起始位置,它的類型你可以從函數外面看到,因為它是一個全局變數。
&ledBuff是取ledBuff的地址,
(uint8 data*)&ledBuff是把取得的地址強制轉換為uint8 data類型的指針。
((uint8 data*)&ledBuff+i是將這個指針位移,偏移量是i
*((uint8 data*)&ledBuff+i)最後加*號是將便宜後的地址中的值取出來,最終賦值給了P0.
這里P0是一個埠。

閱讀全文

與單片機函數指針相關的資料

熱點內容
pboc長度加數據加密 瀏覽:187
英雄聯盟國際服手游怎麼下安卓 瀏覽:297
程序員的思路 瀏覽:234
只能用命令獲得的四種方塊 瀏覽:358
怎麼用命令方塊防止開創造 瀏覽:807
掃描版的pdf 瀏覽:790
編程貓怎樣做3d游戲 瀏覽:207
怎麼查找雲伺服器上的ftp 瀏覽:156
我的世界伺服器如何注冊賬號 瀏覽:934
統計英文字元python 瀏覽:423
linux信息安全 瀏覽:908
壓縮機接線柱爆 瀏覽:999
程序員自主創業 瀏覽:584
匯編程序員待遇 瀏覽:359
怎麼批量有順序的命名文件夾 瀏覽:211
杭州程序員健身 瀏覽:20
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145