電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計(jì) | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> EDA開發(fā)應(yīng)用 >> Keilc >> 正文

小結(jié)一下KeilC與IAR對函數(shù)參數(shù)及返回值的處理

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時間:2011/3/3

在C51中,KeilC與IAR在函數(shù)參數(shù)的傳遞及返回值的處理上,有著較大的不同。本文主要小結(jié)不同,并稍稍發(fā)表Hanny個人對這些方式的優(yōu)缺點(diǎn)的看法。

首先,我們對數(shù)據(jù)類型進(jìn)行分類。根據(jù)數(shù)據(jù)類型的長度,我們可以將數(shù)據(jù)簡單分為:bit, u8, u16, u32。其中,bit表示位變量;u8主要為char、signed char、unsigned char型變量;u16主要為short、usigned short、int、unsigned int、point型變量;u32主要為long、unsigned long、float型變量。

然后,先介紹一下函數(shù)參數(shù)的傳入。
首先是bit,KeilC采用的是位尋址區(qū)的變量來進(jìn)行bit型參數(shù)的傳入。而IAR采用的是B寄存器來傳入。
接著是u8,KeilC主要采用R7、R5、R3來進(jìn)行參數(shù)的傳入。也就是說:當(dāng)函數(shù)的參數(shù)為一個時使用R7,兩個時使用R7和R5,三個時就使用R7、R5及R3。同樣的,IAR主要采用R1、R2、R3、R4、R5來進(jìn)行u8型參數(shù)的傳遞。
緊接著是u16,KeilC主要采用R6:R7、R4:R5、R2:R3來進(jìn)行傳入,而IAR采用R3:R2、R5:R4來進(jìn)行傳入。
再接著就是u32,KeilC主要采用R4:R7來進(jìn)行傳入,IAR采用R5:R2來進(jìn)行傳入。
最后,KeilC還支持一種叫做通用數(shù)據(jù)指針的數(shù)據(jù)類型。主要采用R2:R1、R3來傳入。其中,R2:R1存儲指針地址,R3存儲內(nèi)存類型。

然后再說說返回值。
返回值為bit時,KeilC與IAR都用C來傳出。
返回值為u8時,Keil采用R7,而IAR采用R1。
返回值為u16時,Keil采用R6:R7,而IAR采用R3:R2。
返回值為u32時,Keil采用R4:R7,而IAR采用R5:R2。

下面是Hanny的個人小結(jié):
KeilC的函數(shù)傳入傳出都是秉承KeilC的大端思想,主要用到的寄存器為R7-R2;IAR的函數(shù)傳入傳出是秉承小端思想,主要用到的寄存器為R1-R5。
KeilC函數(shù)參數(shù)傳遞的優(yōu)點(diǎn)是:在從u8向u16、u32擴(kuò)展時,由于低位所處的寄存器位置不變,擴(kuò)展時對代碼的修改較小。
IAR的優(yōu)點(diǎn)是:在傳入的參數(shù)位數(shù)為u8時,更緊湊的方式能夠傳入更多的參數(shù)。

相比之下,Hanny更喜歡KeilC這種方式。

Tags:keilc,keil,IAR對函數(shù)參數(shù),返回值  
責(zé)任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
人夫的堕落变装| 久久精品无码专区免费| 最近免费中文字幕大全免费版视频 | 国产成人综合久久精品| 香蕉免费看一区二区三区| 国产精品99久久久久久人| 麻豆传煤入口麻豆公司传媒| 国产成人高清精品免费软件| 青青国产成人久久91网站站| 国产又大又黑又粗免费视频| 麻豆www传媒| 国产在线一区二区三区av| 色偷偷一区二区无码视频| 国产aⅴ精品一区二区三区久久| 精品久久人人妻人人做精品| 北条麻妃久久99精品| 热re99久久精品国99热| 亚洲自偷自偷在线制服| 欧美亚洲国产精品久久| 亚洲国产精品成人综合久久久| 最新版天堂中文在线| 乱小说欧美综合| 日韩精品久久一区二区三区| 免费a级毛片出奶水| 欧美日韩你懂的| 国产色产综合色产在线视频| 国产精品99久久免费| 中文字幕第38页永久乱码| 女性无套免费网站在线看| www成人国产在线观看网站| 国产麻豆剧传媒精在线播放| 97成人在线视频| 国产日韩精品一区二区三区| 色一情一乱一伦一区二区三区 | bt天堂在线最新版在线| 国产精品无码一区二区三区不卡| 高潮毛片无遮挡高清免费视频 | 久久综合色88| 成人欧美一区二区三区在线| 一级做a爰全过程免费视频| 国内最真实的XXXX人伦|