标题: keil错误error C129: missing ';' before '_at_0x30'怎么解决 [打印本页]

作者: hannyunn    时间: 2021-12-3 23:48
标题: keil错误error C129: missing ';' before '_at_0x30'怎么解决
#include<reg51.h>
#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
uchar data a[32]_at_0x30;   //设定数组a的起始地址为30H
uint i_at_0x55;     //将变量i放在地址55H
//延时程序
void DelayMS(uint ms)
{
uchar t;
while(ms--)for(t=0;t<120;t++);
}
//主程序
void main()
{
  SP=0x60;     //设定堆栈指针位置
  SCON=0x52;
  TMOD=0x20;
  TH1=0xf3;
  TR1=1;       //此行及以上3行为Printf函数所必须
  for(i=0;i<32;i++)
  {
    a[i]=i;
        printf("It is :%d now.\n",i);        //打印程序执行信息
        DelayMS(20000);
}
    while(1);
}
刚开始学习的单片机实验,出现2.3(1).C(5): error C129: missing ';' before '_at_0x30',应该是在第五行,求解答!!!!!!


作者: 188610329    时间: 2021-12-4 00:28
此处需要空格分割:





作者: Hephaestus    时间: 2021-12-4 14:31
第6行也是错的,只是语法上面没错而已,定义了一个属性uint,名字叫 i_at_0x55的变量,并没有楼主预想的将变量i放在地址55H的功能。
作者: hannyunn    时间: 2021-12-4 14:59
188610329 发表于 2021-12-4 00:28
此处需要空格分割:

解决了,感谢!
作者: hannyunn    时间: 2021-12-4 15:01
Hephaestus 发表于 2021-12-4 14:31
第6行也是错的,只是语法上面没错而已,定义了一个属性uint,名字叫 i_at_0x55的变量,并没有楼主预想的将 ...

是的, _at_前后都加空格就对了,十分感谢
作者: 天ノ忆    时间: 2021-12-4 15:56
这样写,你那种写法编译器会以为你定义了两个变量,一个是a[],一个是_at_0x30,第六行也是这样,i和_at_ 和0x55要用空格分开

51hei拼音截图20211204155235.png (10.95 KB, 下载次数: 47)

51hei拼音截图20211204155235.png

作者: hannyunn    时间: 2021-12-4 16:13
感谢,已经解决了
作者: 加油学51    时间: 2024-5-11 19:16
188610329 发表于 2021-12-4 00:28
此处需要空格分割:

解决了 谢谢!
作者: xiaobendan001    时间: 2024-5-11 19:19
_at_后面加个空格
作者: liqiang'    时间: 2024-5-11 20:07
at_后面用空格分开




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1