求C语言高手赐教: 下面程序提示错误:error C141:syntax error near 'unsigned';还有说p没有定义,为什么
#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharucharcodetable[]="OhMy...
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]="Oh My God";
void delay_ms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void com_init()
{ TMOD=0x20;//T1,方式2(自动装载)
TH1=0xfd;//赋初值,波特率9600bps
TL1=0xfd;
SM0=0;//串行口方式1(10位异步收发),8位数据,波特率可变
SM1=1;
PCON=0x00;
TR1=1;
}
void main()
{
com_init();
unsigned char *p;
while(1)
{
p=table;
while(*p!='\0')
{
SBUF=*p;
while(!TI);//等待发送完毕
p++;
TI=0;//发送中断标志清零
delay_ms(100);
}
delay_ms(1000);
}
} 展开
#define uint unsigned int
#define uchar unsigned char
uchar code table[]="Oh My God";
void delay_ms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void com_init()
{ TMOD=0x20;//T1,方式2(自动装载)
TH1=0xfd;//赋初值,波特率9600bps
TL1=0xfd;
SM0=0;//串行口方式1(10位异步收发),8位数据,波特率可变
SM1=1;
PCON=0x00;
TR1=1;
}
void main()
{
com_init();
unsigned char *p;
while(1)
{
p=table;
while(*p!='\0')
{
SBUF=*p;
while(!TI);//等待发送完毕
p++;
TI=0;//发送中断标志清零
delay_ms(100);
}
delay_ms(1000);
}
} 展开
展开全部
用的KEIL? 把
unsigned char *p;放在com_init();前面试一试
unsigned char *p;放在com_init();前面试一试
追问
我用的是KEIL,按你说的做,程序可以编译成功!但为什么unsigned char *p一定要放在com_init()前面呢?能不能解释一下~~~~
追答
keil编译器设定的时候 声明变量必须在其他操作语句的前面,否则编译的时候就会出现各种奇葩问题,嘿嘿,算是一种经验吧。VC++就没有这种问题,和编译器有关系
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询