找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2412|回复: 9
收起左侧

keil错误error C129: missing ';' before '_at_0x30'怎么解决

[复制链接]
ID:987773 发表于 2021-12-3 23:48 | 显示全部楼层 |阅读模式
#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',应该是在第五行,求解答!!!!!!

回复

使用道具 举报

ID:624769 发表于 2021-12-4 00:28 | 显示全部楼层
此处需要空格分割:

error.png


回复

使用道具 举报

ID:883242 发表于 2021-12-4 14:31 | 显示全部楼层
第6行也是错的,只是语法上面没错而已,定义了一个属性uint,名字叫 i_at_0x55的变量,并没有楼主预想的将变量i放在地址55H的功能。
回复

使用道具 举报

ID:987773 发表于 2021-12-4 14:59 | 显示全部楼层
188610329 发表于 2021-12-4 00:28
此处需要空格分割:

解决了,感谢!
回复

使用道具 举报

ID:987773 发表于 2021-12-4 15:01 | 显示全部楼层
Hephaestus 发表于 2021-12-4 14:31
第6行也是错的,只是语法上面没错而已,定义了一个属性uint,名字叫 i_at_0x55的变量,并没有楼主预想的将 ...

是的, _at_前后都加空格就对了,十分感谢
回复

使用道具 举报

ID:139866 发表于 2021-12-4 15:56 | 显示全部楼层
这样写,你那种写法编译器会以为你定义了两个变量,一个是a[],一个是_at_0x30,第六行也是这样,i和_at_ 和0x55要用空格分开
51hei拼音截图20211204155235.png
回复

使用道具 举报

ID:987773 发表于 2021-12-4 16:13 | 显示全部楼层
感谢,已经解决了
回复

使用道具 举报

ID:1120254 发表于 2024-5-11 19:16 | 显示全部楼层
188610329 发表于 2021-12-4 00:28
此处需要空格分割:

解决了 谢谢!
回复

使用道具 举报

ID:1109793 发表于 2024-5-11 19:19 | 显示全部楼层
_at_后面加个空格
回复

使用道具 举报

ID:1095702 发表于 2024-5-11 20:07 | 显示全部楼层
at_后面用空格分开
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表