单片机程序编译出现错误,求教高手,下面是因为什么原因造成的

#include<reg51.h>
#define LEDS 8
/*按键程序*/
char keyscan();
/*显示程序*/
void display();
char dsp[9]={0,0,12,12,12,12,12,12,12};//初始化显示数组
/*计算程序*/
void calculate(char k,char a[8],char b[8])
/*片选*/
unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
/*码选*/
unsigned char code LED_CODES[]=
{
0xc0,0xf9,0xa4,0xb0,0x99, //0~4
0x92,0x82,0xf8,0x80,0x90, //5~9
0x86,0xaf,0xff,0x7f,0xbf, //E,r,空格,.,-
};
/*main主函数*/
void main(void)
{
char i,j,k,c;
char a[8],b[8];
/*定时1s*/
TMOD=0;
TL0=-(1000/256);
TH0=-(1000%256);
EA=1; //总中断开关
ET0=1;//开中断
TR0=1;//启动计器0
此为一小段程序,但编译时却出现这样的情况:
创建目标 '目标 1'
编译 jishuqi.c ...
JISHUQI.C(11): 警告 C258: 'Select': mspace on parameter ignored
JISHUQI.C(11): 错误 C244: 'Select': can't initialize, bad type or class
目标未产生

数组定义有问题,把 unsigned char改 int 试试追问

改了还是不行,很烦

追答

你写的程序不是很规范,建议你重新写下吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-25
void calculate(char k,char a[8],char b[8])
你这个 函数声明 没 ;追问

void calculate(char k,char a[8],char b[8]),这不是声明了吗?,我绝得是unsigned char code Select[]这个有问题,但不知道怎么改

追答

我说的是 声明没加 分号 。。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网