作者ruemann (路人甲)
看板ASM
標題Re: [問題] 8051陣列問題
時間Tue Sep 2 21:54:02 2014
※ 引述《dog9527 (致命病毒)》之銘言:
: 我適用8051 想請問大大問題
: 假設我有tab[]={xxxxxxxxxxxxxxxxxxxxxxxxx}(假設裡面20個數字)
: tab1[]={xxxxxxxxxxxxxxxxxxxxxxxx}(35個數字)
: tab2[]={xxxxxxxxxxxxxxxxxxxxxxxx}(50個數字)
: (依此類推)
: 因為我這樣等於有兩個變數 我想要替換tab表格 同時又要輸出裡面的數值
: 但是不知道這樣形態要怎麼寫
: else{i++; k=i%5;
: WriteDAC(tab[a][k]);}=======//keil c 顯示編譯錯誤
: 請問大大要怎麼再字串set兩個變數?? 感謝
: 重點是我每行數字都不一樣多 無法用2維陣列解決
: 而且我後面K是用來讀取裡面的每一個數字
: 感謝大大指證
好久沒上ptt了,我的解法不是最好的,不過應該是可以work的
unsigned char code tab[] = {11,22,33,44,55};
unsigned char code tab1[] = {4,5,6};
unsigned char code tab2[] = {7,8,9};
unsigned char code* tab_ptr[] = {tab, tab1, tab2};
unsigned char code tab_length[] = {
sizeof(tab), sizeof(tab1), sizeof(tab2) };
for ( i = 0; i < 3; i++ ) // 因為有3個表格,這個也可以用sizeof弄掉XD
{
for(j=0; j<tab_length[i]; j++ ) // you know
{
WriteDAC( *(tab_ptr[i]+j) ); // 應該看得懂吧
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.147.137.158
※ 文章網址: http://webptt.com/m.aspx?n=bbs/ASM/M.1409666044.A.418.html