变量定义出错,导致程序跑飞。请教下原因。

2020-01-23 14:23发布

unsigned char dis[6];
void send_printf(int value)
{
        unsigned char i;
        printf(dis , value);
        for(i=0;i<6;i++)
        {
                SendData(dis[i]);
        }
}
为了省事,直接在函数的上面把变量定义了。printf(dis , value);  dis传递的是指针变量,就是数组的地址。
但是在调试的时候,发现程序运行,老是出问题。于是 unsigned char dis[6];放到程序的开头就好了。
呵呵,问题是找到了,但是具体的原因还不是很清楚,所以想问问大家。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
ywhbn
1楼-- · 2020-01-24 16:00
定义在函数前面、程序开头的语义是一样的。可能是其它问题
煮酒fu
2楼-- · 2020-01-24 17:51
 精彩回答 2  元偷偷看……
rockyyangyang
3楼-- · 2020-01-24 19:23
printf换成sprintf,请叫我活雷锋
tohell
4楼-- · 2020-01-24 20:16
煮酒fu 发表于 2014-8-12 15:50
void sdgbfrb(int value)
{
       nrtngtfrngfhn;

你的意思是修改前后dis都是全局变量?
煮酒fu
5楼-- · 2020-01-24 20:53
tohell 发表于 2014-8-12 20:20
你的意思是修改前后dis都是全局变量?

原因找到了,迥,ldo供电输出能力不够,导致单片机输出不稳定。。。。
qinxg
6楼-- · 2020-01-25 01:38
        sprintf(dis, "%d",  value);   //dis一定要足够大,否则会充爆

一周热门 更多>