易码技术论坛

 找回密码
 加入易码
搜索
查看: 483846|回复: 13

int s[2]={-1,0}; 有语法错误吗?

[复制链接]
发表于 2006-8-31 16:36:39 | 显示全部楼层
应该是char
而且char 的范围是0-255....
 楼主| 发表于 2006-8-31 16:40:11 | 显示全部楼层
有意思~难道整形数组就不能初始化吗?
发表于 2006-8-31 16:49:30 | 显示全部楼层
呃.....不太清楚....
按照lee的说法,在现有基础上能够实现的就不会增加数据类型...
可能星星上不需要整形数组的初始化吧....
有没有试过,行不行?
发表于 2006-8-31 17:00:56 | 显示全部楼层
我知道了,LAVA手册上说了支持char数组int数组long数组的
是LAVA不支持声明时赋初值...(呃。。。我用的星端的编译器)
 楼主| 发表于 2006-8-31 17:12:25 | 显示全部楼层
我s[]数组是全局的哟~
发表于 2006-8-31 17:24:51 | 显示全部楼层
int ball[6][6]={6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6};
找到了一个...居然没有编译出错.....
这个珠宝奇侠里的.....
看来我的水平太低了....
发表于 2006-8-31 17:31:47 | 显示全部楼层
别猜了,我告诉你们原因吧:
早期的编译器对于初始化数据不允许以减号打头。
用新的LavaXIde就没有问题了。
 楼主| 发表于 2006-8-31 17:31:52 | 显示全部楼层
是-1的原因,换为1就没问题;
但int型的范围是-32768~32767,初始为-1肯定是没问题的。所以我才觉得奇怪
发表于 2006-8-31 17:35:35 | 显示全部楼层
恩...星端的不支持声明时赋初值
但是A[1]=-1;却可以
 楼主| 发表于 2006-8-31 17:35:41 | 显示全部楼层
引用第7楼leesoft2006-08-31 17:31发表的“”:
别猜了,我告诉你们原因吧:
早期的编译器对于初始化数据不允许以减号打头。
用新的LavaXIde就没有问题了。

原来是这样,那就好办了。这样写:

int s[2]={0xff,0};
发表于 2006-8-31 17:41:56 | 显示全部楼层
哦....开始猜过用255的,但是int的范围是-32768~32767
那就是0xffff?
发表于 2006-8-31 17:52:12 | 显示全部楼层

0xff不等于-1
 楼主| 发表于 2006-8-31 17:53:17 | 显示全部楼层
不好意思,打错了,是0xffff
 楼主| 发表于 2006-8-31 16:22:13 | 显示全部楼层 |阅读模式
  最近编写LAVA时,遇到上述语句,即 int s[2]={-1,0}; 无论在GVMide还是LAVA1.0中编译起来均显示“语法错误” ;在LAVA3.2中编译却能通过。
不解...

大家有兴趣的可以试试~
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-27 23:33 , Processed in 0.011394 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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