标题: keil C语言不能创建变量数组吗error C247: non-address/-constant initializer [打印本页]

作者: ftzs    时间: 2022-7-2 01:10
标题: keil C语言不能创建变量数组吗error C247: non-address/-constant initializer
  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. }
复制代码
指针数组就不会报错

作者: Hephaestus    时间: 2022-7-2 04:52
MDK可以编译通过,因为装了MDK所以没装C51,其他人可以试试。
作者: wojiaoguogai    时间: 2022-7-2 08:20
第一个   char i[2]={a,b}; 改为 char i[2]={1,2};试下
作者: tyrl800    时间: 2022-7-2 17:42
第一段是赋值,第二段是定义,当然第一段错误了
作者: ftzs    时间: 2022-7-2 22:52
wojiaoguogai 发表于 2022-7-2 08:20
第一个   char i[2]={a,b}; 改为 char i[2]={1,2};试下

那样就不是变量数组了呀
作者: ftzs    时间: 2022-7-2 22:55
tyrl800 发表于 2022-7-2 17:42
第一段是赋值,第二段是定义,当然第一段错误了

但用dev就能编译通过
作者: zshongtu02    时间: 2022-7-3 10:50
char i[2]={‘a’,‘b’};
作者: xiaoyuxinke    时间: 2022-7-3 19:28
数组里面包括数组都可以

作者: Hephaestus    时间: 2022-7-4 06:10
tyrl800 发表于 2022-7-2 17:42
第一段是赋值,第二段是定义,当然第一段错误了

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

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




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