无法在代码中间定义和声明数组吗? [重复]

问题描述 投票:0回答:1

第10行pr []处的数组没有错误,但是第20行th []处的错误引发错误。当我在代码开头声明tr时,它起作用,但是当我想在代码中间声明它时,编译失败。

  #include<reg51.h>
unsigned int i,j,dc;
unsigned int pwr[]={0x00,0x01,0x02,0x03,0x04};
unsigned int *ch;
void main(void)
{
j=0;    
while(1)
{
unsigned int pr[5]={0x00,0x01,0x02,0x03,0x04};
ch=&pr[2];
i=0;
dc=1000;
IE=0x82;    
TMOD=0x01;
TL0=0x18;
TH0=0xfc;
TR0=1;
while(dc!=0);
unsigned int tr[5]={0x00,0x01,0x02,0x03,0x04};
dc=1000;
c embedded keil 8051
1个回答
0
投票

在旧版本的C中,名称为“ C90”或有时称为“ ANSI-C”,您不能在任何地方声明变量,而只能在块的开头声明。在1999年,此问题已得到纠正,因此您必须使用20岁以上的编译器,或者将其卡在C90模式下。考虑使用标准C而不是当前使用的C。 C90和8051都是过时的技术。

© www.soinside.com 2019 - 2024. All rights reserved.