作者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/cn.aspx?n=bbs/ASM/M.1409666044.A.418.html