[51单片机] 初学者请教一个程序报错的问题

[复制链接]
2209|26
 楼主| fasm 发表于 2015-12-22 10:54 | 显示全部楼层
JY-DX-JY 发表于 2015-12-22 10:30
uchar *VOL_Uc[3]={Adr_Str2,Uc_Str,Out_Str};
我还是没弄明白你Uc_Str这个是什么意思?
这个数组是什么意 ...

if(Up_Flag==1) //将Up对应的7个Uc字符串存放到Uc_Str[7]中
{
uchar *Uc_Str[7]={Uc1_Str1,Uc1_Str2,Uc1_Str3,Uc1_Str4,Uc1_Str5,Uc1_Str6,Uc1_Str7};
}
else if(Up_Flag==2)
{
uchar *Uc_Str[7]={Uc2_Str1,Uc2_Str2,Uc2_Str3,Uc2_Str4,Uc2_Str5,Uc2_Str6,Uc2_Str7};
}
else if(Up_Flag==3)
{
uchar *Uc_Str[7]={Uc3_Str1,Uc3_Str2,Uc3_Str3,Uc3_Str4,Uc3_Str5,Uc3_Str6,Uc3_Str7};
}
//下面我想把Uc_Flag对应的那个UC字符串及地址和输出要求字符串放到一个指针数组中,方便从串口输出
//因为如果想要可编程电源输出你想要得电压,发送字符串格式如下:":ADR01;" 等待起码15ms;":VOL13.50;"等待//起码15ms;":OUT1;"等待起码15ms
uchar *VOL_Uc[3]={Adr_Str2,Uc_Str[i-1],Out_Str};
JY-DX-JY 发表于 2015-12-22 11:06 | 显示全部楼层
我明白你的意思了,可是你的程序写的,我真无语了。
uchar *VOL_Uc[3]={Adr_Str2,Uc_Str[i-1],Out_Str};
定义语句不能放在执行语句后面。
先定义,再赋值。你的程序问题大了。
 楼主| fasm 发表于 2015-12-22 11:57 | 显示全部楼层
JY-DX-JY 发表于 2015-12-22 11:06
我明白你的意思了,可是你的程序写的,我真无语了。
uchar *VOL_Uc[3]={Adr_Str2,Uc_Str,Out_Str};
定义语 ...

C89规定,在任何执行语句之前,在块的开头声明所有局部变量;
在C99以及C++中则没有这个限制,即在首次使用之前,可在块的任何位置都可以声明变量。
单片机用C89么?
JY-DX-JY 发表于 2015-12-22 12:01 | 显示全部楼层
你自己看着办吧,我帮不了你了。
 楼主| fasm 发表于 2015-12-22 12:01 | 显示全部楼层
JY-DX-JY 发表于 2015-12-22 12:01
你自己看着办吧,我帮不了你了。

我知道了,谢谢!
 楼主| fasm 发表于 2015-12-22 12:34 | 显示全部楼层
用指针解决了,感谢大家的回帖,尤其是JY-DX-JY,我去看一下单片机C语言吧,再次感谢!
JY-DX-JY 发表于 2015-12-22 13:07 | 显示全部楼层
分都给我了,我都不好意思了。没帮到楼主什么忙。楼主加油吧,好好规范自己的代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部