智能车制作

标题: Codewarrior5.1编译时报错 L1102: [打印本页]

作者: 一个好青年    时间: 2013-5-7 12:00
标题: Codewarrior5.1编译时报错 L1102:
[attach]45459[/attach]Codewarrior5.1编译时报错 L1102:
求解啊   给代码里面新定义了两个数组就这样了

作者: iamback    时间: 2013-5-7 12:00
我了个去。。。。
你弄全点啊。

LINE_NUMBER 和 MAX_POINT_NUM 这两个宏定义是多少啊?

要不你自己算一下得了,如果你的是9s12xs128de的话
ram 8K,
你看你定义的这些数组加起来是不是大于8K了。

作者: donsbin    时间: 2013-5-7 12:03
goto 一下
作者: 一个好青年    时间: 2013-5-7 13:21
donsbin 发表于 2013-5-7 12:03
goto 一下

什么意思 GOTO到哪?
作者: 一个好青年    时间: 2013-5-7 13:25
donsbin 发表于 2013-5-7 12:03
goto 一下

求详解啊。。。
作者: iamback    时间: 2013-5-7 15:25
把你定义的数组那地方的代码发上来
初步判断是你数组定义太大了。超过RAM大小了。
作者: 一个好青年    时间: 2013-5-7 15:58
iamback 发表于 2013-5-7 15:25
把你定义的数组那地方的代码发上来
初步判断是你数组定义太大了。超过RAM大小了。

typedef struct _typePoint
{
    int Start;
    int End;
    int Mid;
    int Length;
    char Cluster;                   }typePoint;


typePoint   gPointData[LINE_NUMBER][MAX_POINT_NUM];
下面两个是我定义的
typePoint   LPointData[LINE_NUMBER][MAX_POINT_NUM] ;
typePoint   RPointData[LINE_NUMBER][MAX_POINT_NUM] ;

我觉得你说的比较靠谱

作者: 一个好青年    时间: 2013-5-8 08:18
iamback 发表于 2013-5-7 16:50
我了个去。。。。
你弄全点啊。

好,谢谢,是有点麻烦,怎么算数组占用的空间?
作者: iamback    时间: 2013-5-8 09:24
一个好青年 发表于 2013-5-8 08:18
好,谢谢,是有点麻烦,怎么算数组占用的空间?

一般的,在s12中  char类型一个字节,int类型2个字节。
比如
char a[10];   就是10*1字节 = 10B
int   b[30][80];  30*80*2 = 4800 个字节
若是 int c[5000];   就是10000字节,明显超了RAM大小:8KB
要是你定义的几个数组或变量加起来接近8kB或者超了,都会有问题。
程序运行时还需要内存的,所以要留一定的空间。
你的是结构体数组,每一个数组元素占的空间 是这个结构体的大小。也就是元素个数*结构体大小。
需要注意的是,不同环境下(8位、16位、32位),不同的变量类型和结构体占的空间大小是不一样滴。
还要考虑内存字节对齐等问题。
详细的你谷歌一下比我说的清楚。

作者: 一个好青年    时间: 2013-5-9 00:07
iamback 发表于 2013-5-8 09:24
一般的,在s12中  char类型一个字节,int类型2个字节。
比如
char a[10];   就是10*1字节 = 10B

太感谢了 ,就是这个问题,删减了没有的数组就好了




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2