找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1615|回复: 11
收起左侧

Keil c51 c语言编译错误

[复制链接]
ID:732527 发表于 2020-4-19 10:10 | 显示全部楼层 |阅读模式
#include<reg51.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar data a[32]_at_0x30;
uint i_at_0x55;
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;
        for(i=0;i<32;i++)
        {
                a[ i]=i;
                printf("It is :5%d now.\n",i);
                DelayMS(20000);
        }
        whlie(1);
}
这是我在KEIL中编写的程序,但是在编译的时候出现了错误,就是红色的那一行:uchar data a[32]_at_0x30;
错误显示为esimlab3.c(5): error C129: missing ';' before '_at_0x30'。我有点不理解,求大神指教小白

回复

使用道具 举报

ID:300158 发表于 2020-4-19 12:01 | 显示全部楼层
这是定义还是赋值?如果是定义,没有空格分开,编译器可能会报错,可以采用常规定义或者赋值等式呀
回复

使用道具 举报

ID:592807 发表于 2020-4-19 13:01 | 显示全部楼层
非法变量名,C语言变量名由字母数字下划线组成,而且只能字母或则下划线开头。
回复

使用道具 举报

ID:213173 发表于 2020-4-19 13:37 | 显示全部楼层
就这么几条语句,抄都抄不好,错误5、6处。楼主还得从0学起。
回复

使用道具 举报

ID:94031 发表于 2020-4-19 14:19 | 显示全部楼层
既然用C就不要指定存储地址,让编译器处理,uchar data a[32]_at_0x30;改成uchar data a[32];
回复

使用道具 举报

ID:282850 发表于 2020-4-19 14:20 | 显示全部楼层
uchar data a[32]_at_0x30;
改成
uchar data,a[32]_at_0x30;
data是一个数据,a是数据
或者uchar data_a[32]_at_0x30;
data_a是一个数组。
回复

使用道具 举报

ID:723681 发表于 2020-4-19 16:42 | 显示全部楼层
uchar data a[32]_at_0x30;错误语句,
要区分到底是定义还是声明
C语音中标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线
回复

使用道具 举报

ID:94031 发表于 2020-4-19 17:00 | 显示全部楼层
注意空格,改成这样:uchar data a[32]_at_ 0x30;    _at_,0x30之间有空格。
回复

使用道具 举报

ID:732527 发表于 2020-4-19 23:23 | 显示全部楼层
wulin 发表于 2020-4-19 13:37
就这么几条语句,抄都抄不好,错误5、6处。楼主还得从0学起。

多谢指点,我确实刚开始学这门课,还得多多学习。
回复

使用道具 举报

ID:732527 发表于 2020-4-19 23:25 | 显示全部楼层
xuyaqi 发表于 2020-4-19 17:00
注意空格,改成这样:uchar data a[32]_at_ 0x30;    _at_,0x30之间有空格。

多谢多谢
回复

使用道具 举报

ID:732527 发表于 2020-4-19 23:26 | 显示全部楼层
f556 发表于 2020-4-19 14:20
uchar data a[32]_at_0x30;
改成
uchar data,a[32]_at_0x30;

非常感谢!!!
回复

使用道具 举报

ID:732527 发表于 2020-4-19 23:30 | 显示全部楼层
Youth8023 发表于 2020-4-19 16:42
uchar data a[32]_at_0x30;错误语句,
要区分到底是定义还是声明
C语音中标识符由字母(A-Z,a-z)、数字(0- ...

data主要说明数据保存在片内RAM里面,这个单片机C51的c语言编程,和c有点不同
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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