关于单片机80C51keil编码错误的问题

#include <reg52.h> //52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6; //申明U1锁存器的锁存端
sbit wela=P2^7; //申明U2锁存器的锁存端
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint ms) ;
void main()
{
uchar temp;
temp=0;
unsigned char shi;
uchar ge; //分离两个分别要显示的数
shi=temp/10;
ge=temp%10;
}
两位数在数码管上显示出来从0到99循环.C(16): error C141: syntax error near 'unsigned'
两位数在数码管上显示出来从0到99循环.C(16): error C202: 'shi': undefined identifier
两位数在数码管上显示出来从0到99循环.C(17): error C141: syntax error near 'unsigned'
两位数在数码管上显示出来从0到99循环.C(17): error C202: 'ge': undefined identifier
两位数在数码管上显示出来从0到99循环.C(18): error C202: 'shi': undefined identifier
两位数在数码管上显示出来从0到99循环.C(19): error C202: 'ge': undefined identifier

第1个回答  2013-07-03
#include <reg52.h> //52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6; //申明U1锁存器的锁存端
sbit wela=P2^7; //申明U2锁存器的锁存端
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint ms) ;
void main()
{
uchar temp=0;
unsigned char shi;
uchar ge; //分离两个分别要显示的数
shi=temp/10;
ge=temp%10;
}本回答被网友采纳
第2个回答  2013-07-03
与C++不一样,C语言中,必须把所有变量都申明完毕后,才能开始逻辑语句的编写,换句话说,你必须把
unsigned char shi;
uchar ge;
这两句放在 temp=0;之前。
当然,你可以在申明时直接赋初值,这也是允许的。
uchar temp=0;
unsigned char shi;
uchar ge;本回答被提问者采纳
第3个回答  2013-07-03
uchar temp;
unsigned char shi;
uchar ge;         //分离两个分别要显示的数
temp=0;
shi=temp/10;
ge=temp%10;

局部变量定义不能再赋值语句之后,只能在之前

       

相似回答
大家正在搜