keil4里面定义数组 。比如 unsigned char sts[7]=0,1,2,3,4,5,6;这种会报错呢。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keil4里面定义数组 。比如 unsigned char sts[7]=0,1,2,3,4,5,6;这种会报错呢。。相关的知识,希望对你有一定的参考价值。

以前用KEIL3都没错

参考技术A char为字符型,应该改为sts[7]='0','1','2','3','4','5','6';追问

如果我把括号改为()就不会报错了。。这是什么原因呢。。。而且我把char 改为int仍然报错。。我把这个参数定义在一个结构体里面的。还有其他参数,但是都是CHAR型,这个有影响嘛?

参考技术B 报的什么错?追问

MAIN.C(51): error C141: syntax error near ''
MAIN.C(51): error C141: syntax error near ''

keil uvision3宏定义怎么没用 #define uint unsigned int #define uchar unsigned char

#define uint unsigned int
#define uchar unsigned char
编译的时候没有提示这两句有错,但是后面却不能用uint和uchar。为什么在keil中就相当于没写一样,而且后面的unsigned和int都没有变色。到底怎么回事

这样描述是对的。有两点要说明一下。
1.就是前面声明了uint ,后面肯定是可以利用的。
2.这种表达形式#define uchar unsigned char后面的关键字确实不变色。因为编辑器将#defined后当作文本处理了。追问

就是后面用不了uint啊,所以很郁闷。是不是跟软件的安装有关呢

追答

不是吧,你把你用的方法贴上来看看。
通常
#define uint unsigned int
uint a= 0x1234;
delay (uint i);
等等,都是可以的

追问

比如一个很简单的程序
#include
#define uint unsigned int ;
sbit p1=P1^0;
void delay ();
void main()

while(1)

p1=0;
delay();
p1=1;
delay();


void delay()

unsigned int x,y;
for(x=1000;x>0;x--)
for(y=300;y>0;y--);

编译后提示在图片上。
这是不是软件安装的问题呢?

追答

#define uint unsigned int ;
这句后面不能有分号

参考技术A #include <reg52.h>
#define uchar unsigned char //宏定义
#define uint unsigned int
void delay_50ms(uint t)
uint j;
for(;t>0;t--)
for(j=6245;j>0;j--); //延时函数

void main()

uchar i,key;
i=0; //
while(1)

P3=0Xff; //这是为了定位停下就是遇到P3^3==P3^2==0就查遇到几次用开关控制次数
if(P3^3==P3^2 && P3^3==0)

i=0; //
i=i++;
P0=0X11;
P3=key;
delay_50ms(20);
switch(key)

case 0xf1:i=1;P0=0X00;break;
case 0xe9:i=2;P0=0X00;break;
case 0xd9:i=3;P0=0X00;break;
case 0xb9:i=4;P0=0X00;break;
default:break;

else
EA=1;
EX0=1;
EX1=1;
IT0=0;
IT1=0;

P0=0X11;




void int0 () interrupt 0 //0号中断函数,当int0为低电平或有一下降沿信号时触发,转弯有的一个发动机不转另一个转

P0=0x01;


void int2 () interrupt 2 // 2号中断函数,

P0=0x10;

经keil 编译后无错误,无警告。
参考技术B 出错是因为你没加“;”号

以上是关于keil4里面定义数组 。比如 unsigned char sts[7]=0,1,2,3,4,5,6;这种会报错呢。。的主要内容,如果未能解决你的问题,请参考以下文章

怎么把unsigned char数组转化为字符串类型

单片机c语言程序中,数组最多能有几个元素?为啥我定定义了一个全局的数组,unsigned cha

keil4宏定义赋值报错

char* 数组出现“多个定义”错误,但 unsigned char 数组不出现

keil4怎么定义函数

数组的一些相关知识