日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

登錄 免費注冊 首頁 | 行業(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

請教關(guān)于ICCAVR中鏈表的用法

作者:alp 欄目:單片機
請教關(guān)于ICCAVR中鏈表的用法
ICCAVR中使用鏈表不正常:在TC下正常的代碼在ICCAVR下編譯后用AVRStudio軟件仿真結(jié)果不正確。
TC下結(jié)果為100,200,300,400,500
而AVRStudio軟件仿真結(jié)果為500,500,500,500,500。
請指點,謝謝!

測試代碼如下:
#include <stdlib.h>

int n;

typedef struct ITEM.html">ITEM
{
    int ITEM.html">ITEM_no;
    struct ITEM.html">ITEM *ITEM.html">ITEM_next;
}ITEM;
typedef ITEM * P_ITEM;        
#define LEN_ITEM sizeof(ITEM)


P_ITEM structTest(void)
{
    P_ITEM pstrTemp,pstrTemp1,pstrTemp2;

    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 100;

    pstrTemp = pstrTemp1;
    pstrTemp2 = pstrTemp1;
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 200;
    pstrTemp2->ITEM.html">ITEM_next = pstrTemp1;

    pstrTemp2 = pstrTemp1;
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 300;
    pstrTemp2->ITEM.html">ITEM_next = pstrTemp1;


    pstrTemp2 = pstrTemp1;
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 400;
    pstrTemp2->ITEM.html">ITEM_next = pstrTemp1;

    pstrTemp2 = pstrTemp1;
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 500;
    pstrTemp2->ITEM.html">ITEM_next = pstrTemp1;

    n = 5;

    return(pstrTemp);
}


void main(void)
{    
    unsigned CHAR TEMP, TEMP2;
    P_ITEM pstrTemp;

    pstrTemp = structTest();

    for(TEMP=0; TEMP<5; TEMP++)
    {
        TEMP2 = pstrTemp->ITEM.html">ITEM_no;
        pstrTemp = pstrTemp->ITEM.html">ITEM_next;
    }
    
    while(1);
}

* - 本貼最后修改時間:2004-4-1 17:01:15 修改者:alp

2樓: >>參與討論
alp
問題解決了。
#include <stdlib.h>

int n;
extern CHAR _bss_end;

typedef struct ITEM.html">ITEM
{
    int ITEM.html">ITEM_no;
    struct ITEM.html">ITEM *ITEM.html">ITEM_next;
}ITEM;
typedef ITEM * P_ITEM;        
#define LEN_ITEM sizeof(ITEM)


P_ITEM structTest(void)
{
    P_ITEM pstrTemp,pstrTemp1,pstrTemp2;
    
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 100;

    pstrTemp = pstrTemp1;
    pstrTemp2 = pstrTemp1;
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 200;
    pstrTemp2->ITEM.html">ITEM_next = pstrTemp1;

    pstrTemp2 = pstrTemp1;
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 300;
    pstrTemp2->ITEM.html">ITEM_next = pstrTemp1;

    pstrTemp2 = pstrTemp1;
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 400;
    pstrTemp2->ITEM.html">ITEM_next = pstrTemp1;
    
    pstrTemp2 = pstrTemp1;
    pstrTemp1 = (P_ITEM)malloc(LEN_ITEM);
    pstrTemp1->ITEM.html">ITEM_no = 500;
    pstrTemp2->ITEM.html">ITEM_next = pstrTemp1;

    n = 5;

    return(pstrTemp);
}


void main(void)
{    
      unsigned CHAR TEMP;
    int TEMP2;
      P_ITEM pstrTemp;

    _NewHeap(&_bss_end+1,&_bss_end+201);
        pstrTemp = structTest();

      for(TEMP=0; TEMP<5; TEMP++)
      {
         TEMP2 = pstrTemp->ITEM.html">ITEM_no;
        pstrTemp = pstrTemp->ITEM.html">ITEM_next;
      }
    
    while(1);
}

3樓: >>參與討論
TECHWELL
嗯,解決了就好.
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
有哪位高手知道怎樣用AVR將AT123456字符發(fā)出去?
請教關(guān)于avr自編程!
AVR的帶CAN總線的單片機出來嗎?
winavr 嵌入?yún)R編的問題,請大蝦指教,謝謝
請問哪一個型號的AVR單片機具有雙串口呀?
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.hbjingang.com 浙ICP證030469號