音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

c51指針問題

作者:liushaolin 欄目:單片機
c51指針問題
我有這個三個函數(shù):
void fun1 (unsigned CHAR pdata *p)
void fun2 (unsigned CHAR xdata *p)
void fun3 (unsigned CHAR code  *p)
這三個函數(shù)的差異只在于:指針所指向數(shù)據(jù)區(qū)不同,后面的函數(shù)內(nèi)容完全相同。有沒有辦法把它合并成一個函數(shù)。怎么并。謝謝!

2樓: >>參與討論
toobad
可以阿
為什么不可以呢?

3樓: >>參與討論
liushaolin
toobad 兄:
toobad 兄,怎么并啊,請說詳細點,謝謝!
是不是改成:void fun1 (unsigned CHAR *p)這樣?,我試過好象不行

4樓: >>參與討論
zgl7903
個人見解
改為void fun(void *p)試試看,C51中void指針是三個字節(jié)的,可以支持C51中的所有24位空間內(nèi)的內(nèi)容。

5樓: >>參與討論
平常人
可以合并為一個函數(shù),但......
可以改為void fun(void *p),但在函數(shù)里你還是要將指針p轉(zhuǎn)型為指向不同區(qū)域的指針,這是因為訪問不同的存儲區(qū)域需要用不同的指令,這一點編譯器是不會知道的,你必須明確指明。

unsigned CHAR pdata *pp;
unsigned CHAR xdata *xp;
unsigned CHAR code  *cp;
SWITCH (p) {
  case p points to pdata:
    pp = (unsigned CHAR pdata *)p;
    .....
    break;
  case p points to xdata:
    xp = (unsigned CHAR xdata *)p;
    .....
    break;
  case p points to code:
    cp = (unsigned CHAR code *)p;
    .....
    break;
}

6樓: >>參與討論
沈老
一個檢查指針類型的函數(shù)
//以下是一個檢查指針類型的函數(shù):
unsigned CHAR data  *dp;
unsigned CHAR pdata *pp;
unsigned CHAR xdata *xp;
unsigned CHAR code  *cp;

CHAR CheckPointerType(CHAR *p)
{
    CHAR type;
    type=*((CHAR*)&p);
    return type;
}

main()
{
    CHAR pType;    
    pType=CheckPointerType(dp);//  0x00
    pType=CheckPointerType(pp);//  0xFE
    pType=CheckPointerType(xp);//  0x01
    pType=CheckPointerType(cp);//  0xFF
//
}


參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
凌陽單片機如何?有用過的朋友嗎?
串口擴展
通用燒錄器的48PIN萬用驅(qū)動是如何做的
單片機 ADC 輸入電壓范圍
奇怪的現(xiàn)象!
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號