欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3183|回復(fù): 10
收起左側(cè)

關(guān)于C語言指針和數(shù)組,求大神們指教 萬分感謝

[復(fù)制鏈接]
ID:766396 發(fā)表于 2021-7-1 22:03 | 顯示全部樓層 |閱讀模式
下面報(bào)了一個(gè)警告,并且得到的結(jié)果不對(duì) ,void Transition(uint8 *dat)這個(gè)函數(shù)我就是這樣寫的沒有錯(cuò)誤  但是為什么到void dis_led(uint8 *ddata)這個(gè)函數(shù)使用起來就有錯(cuò)誤了呢,求大神們指導(dǎo)小弟一下  萬分感謝!

單片機(jī)源程序如下:
void dis_led(uint8 *ddata)
{
        uint8 i;
        for(i=0;i<=7;i++)
        {
                P2=P2&0xe3|wei[ i];
                P0=ddata[ i];
                delay(3);
                P0=0;
        }                        
}


uint8 Ascall_Dispose(uint8 dat)
{
        if(dat>=0x30&&dat<=0x39)
        return duan_num[dat-48];
        if(dat>=0x41&&dat<=0x5a)
        return duan_big_letter[dat-65];
        if(dat>=0x61&&dat<=0x7a)   
        return duan_small_letter[dat-97];
        return 0x00;         
}
void Transition(uint8 *dat)
{
        uint8 i,i1;
        static dis_buff[9];
        static dis_step=0,point_place=0;
        do
        {
                switch(dis_step)
                {
                        case 0:
                                        for(i=0;i<8;i++)
                                        {
                                                if(dat[ i]==0x2e)
                                                {
                                                        point_place=i;
                                                        dis_step=1;        
                                                }
                                                dis_buff[ i]=Ascall_Dispose(dat[ i]);
                                        }
                                        dis_step=2;        
                                        break;
                        case 1:
                                        for(i=point_place;i<8;i++)
                                        {
                                                dis_buff[ i]=Ascall_Dispose(dat[i+1]);               
                                        }
                                        dis_buff[point_place]=dis_buff[point_place]|0x80;
                                        dis_step=2;               
                        case 2:
                                        dis_led(dis_buff);                         //[ i] //這個(gè)地方報(bào)警告   DIS_LED.C(81): warning C182: pointer to different objects   
//                                        for(i1=0;i1<8;i1++)
//                                        {
//                                                Dis_buff1[i1]=dis_buff[i1];        
//                                        }
                                        dis_step=0;                                       
                }        
        }while(dis_step!=0);
}
void main()
{
        strcpy(Dis_buff,"12345678");
        while(1)
        {
                Transition(Dis_buff);
//                dis_led();
        }
}



回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2021-7-1 23:53 | 顯示全部樓層
c51別用指針,8051這個(gè)指令體系設(shè)計(jì)之初就沒有考慮過高級(jí)語言,用指針只能讓代碼變得又慢又蠢,用指針起碼要用STM8起步。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2021-7-2 00:48 | 顯示全部樓層
本帖最后由 lkc8210 于 2021-7-2 09:32 編輯

因?yàn)闆]有宣告變數(shù)的型態(tài)
        static dis_buff[9];
Compiler會(huì)假設(shè)dis_buff的型態(tài)為int (4 Byte)
因?yàn)槟阗N的代碼不完整,拫據(jù)可見的代碼推斷
uint8 是unsigned char (2 Byte)
所以在dis_led 的for loop中指向了其它地址了

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:592807 發(fā)表于 2021-7-2 08:46 | 顯示全部樓層
        static dis_buff[9];
        static dis_step=0,point_place=0;
沒定義數(shù)組類型
回復(fù)

使用道具 舉報(bào)

ID:404893 發(fā)表于 2021-7-2 08:47 | 顯示全部樓層
Hephaestus 發(fā)表于 2021-7-1 23:53
c51別用指針,8051這個(gè)指令體系設(shè)計(jì)之初就沒有考慮過高級(jí)語言,用指針只能讓代碼變得又慢又蠢,用指針起碼 ...

第一次聽到這種說法.....
回復(fù)

使用道具 舉報(bào)

ID:450849 發(fā)表于 2021-7-2 09:00 來自觸屏版 | 顯示全部樓層
這個(gè)ddata是不是個(gè)關(guān)鍵字
回復(fù)

使用道具 舉報(bào)

ID:744327 發(fā)表于 2021-7-2 09:06 | 顯示全部樓層
ddata是指針變量,直接給數(shù)組首地址,應(yīng)該不對(duì)。
回復(fù)

使用道具 舉報(bào)

ID:766396 發(fā)表于 2021-7-3 21:42 | 顯示全部樓層
lkc8210 發(fā)表于 2021-7-2 00:48
因?yàn)闆]有宣告變數(shù)的型態(tài)
        static dis_buff[9];
Compiler會(huì)假設(shè)dis_buff的型態(tài)為int (4 Byte)

是的  沒定義變量的類型 ,已經(jīng)調(diào)整過來了 ,感謝大哥
回復(fù)

使用道具 舉報(bào)

ID:766396 發(fā)表于 2021-7-3 21:42 | 顯示全部樓層
黃youhui 發(fā)表于 2021-7-2 08:46
static dis_buff[9];
        static dis_step=0,point_place=0;
沒定義數(shù)組類型

是的,沒定義數(shù)組的類型 ,已經(jīng)調(diào)整過來了 ,感謝大哥
回復(fù)

使用道具 舉報(bào)

ID:766396 發(fā)表于 2021-7-3 21:43 | 顯示全部樓層
是沒定義數(shù)組的類型導(dǎo)致的,感謝各位大哥!
回復(fù)

使用道具 舉報(bào)

ID:948960 發(fā)表于 2021-7-4 11:51 | 顯示全部樓層
建議看下c語言的書
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表