找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3285|回复: 8
收起左侧

keil C语言不能创建变量数组吗error C247: non-address/-constant initializer

[复制链接]
ID:989745 发表于 2022-7-2 01:10 | 显示全部楼层 |阅读模式
  1. char a=1;char b=2;
  2. void main()
  3. {
  4.         char i[2]={a,b};
  5. }
复制代码
提示:error C247: non-address/-constant initializer。但同样的代码用dev就能正常编译
  1. char a[2]={1,2};
  2. void main()
  3. {
  4.         char *p[2];char i=2;
  5.         for (i;i>0;i--)
  6.         {
  7.                 p[i]=&a[i];
  8.         }
  9. }
复制代码
指针数组就不会报错
回复

使用道具 举报

ID:883242 发表于 2022-7-2 04:52 | 显示全部楼层
MDK可以编译通过,因为装了MDK所以没装C51,其他人可以试试。
回复

使用道具 举报

ID:415064 发表于 2022-7-2 08:20 | 显示全部楼层
第一个   char i[2]={a,b}; 改为 char i[2]={1,2};试下
回复

使用道具 举报

ID:275826 发表于 2022-7-2 17:42 | 显示全部楼层
第一段是赋值,第二段是定义,当然第一段错误了
回复

使用道具 举报

ID:989745 发表于 2022-7-2 22:52 | 显示全部楼层
wojiaoguogai 发表于 2022-7-2 08:20
第一个   char i[2]={a,b}; 改为 char i[2]={1,2};试下

那样就不是变量数组了呀
回复

使用道具 举报

ID:989745 发表于 2022-7-2 22:55 | 显示全部楼层
tyrl800 发表于 2022-7-2 17:42
第一段是赋值,第二段是定义,当然第一段错误了

但用dev就能编译通过
回复

使用道具 举报

ID:101950 发表于 2022-7-3 10:50 | 显示全部楼层
char i[2]={‘a’,‘b’};
回复

使用道具 举报

ID:61140 发表于 2022-7-3 19:28 | 显示全部楼层
数组里面包括数组都可以
回复

使用道具 举报

ID:883242 发表于 2022-7-4 06:10 | 显示全部楼层
tyrl800 发表于 2022-7-2 17:42
第一段是赋值,第二段是定义,当然第一段错误了

我在沙发位已经说过了,MDK编译通过,完全没有错误。

问题是小白们把MDK叫Keil C,把C51也叫Keil C,把我弄懵逼了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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