单片机中有关C语言 定义const常量的问题,请高手帮忙
我使用的是松下单片机,C语言编写。需要定义const常量。如:
#define uchar unsigned char
const uchar S1[5]={1,1,1,1,35};
const uchar S2[5]={14,7,16,8,35};
const uchar S3[5]={2,4,2,4,35};
const uchar S4[5]={10,9,7,6,50};
//----以上定义后编译,只会占用单片机的ROM空间,而不是RAM空间
//----但是下面的定义会同时占用ROM和RAM空间,这是怎么回事,RAM空间有限不够用,ROM还比较大。
const uchar *CD_ab1[ ]={s1,s1,s4,s3,s3};
const uchar *CD_ab2[ ]={s2,s1,s2,s3,s4};
const uchar *CD_ab3[ ]={s4,s1,s4,s1,s3};
const uchar **WA_MAR[ ]={CD_ab1, CD_ab2, CD_ab2, CD_ab1, CD_ab3};
请高手帮忙看一下。我的软件使用这样的架构,写到最后,发现RAM不够了,程序无法运行。现在想改回使用多维数组的话,要改动的地方太多了。应该怎么定义才能保证只占用ROM空间,而不是RAM空间呢。谢谢!