51平台下,全局变量初始化问题
各位大侠,真心求教:51平台下,全局变量初始化问题??
问题描述:
typedef xdata unsigned char xBYTE; //1字节
在文件test.c里这样定义并初始化一个全局数组:
static xBYTE uploadList_test = {
0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
};
然后在上电进入mian函数(main函数和test.c不是同一个文件)的时候调用test.c里的打印函数打印出变量uploadList_test的值,发现uploadList_test没有值。
51扩成了5个bank的,keil编译器中当把test.c放在comment区和bank4的时候用上述操作打出来是有值的,但是test.c放在bank0~bank3的时候打出来发现没有值!!!但是查看编译后的编译文件uploadList_test是已经有值了,是STARTUP.A51这个文件有问题吗??
问题补充:上述定义改成static code xBYTE uploadList_test={........}直接从rom里面读数据打出来是有值的,但是改成 static const xBYTE uploadList_test={........}打出来也没有值!!
这是怎么回事呢??? 回复【楼主位】xmy2007415
-----------------------------------------------------------------------
咋么一个回复也木有??(⊙o⊙)./emotion/em014.gif回复【楼主位】xmy2007415 大虾们都忙去啦吗? 定义数组的时候不要初始化,把赋初值操作放在main函数里面。 回复【3楼】Jason022
-----------------------------------------------------------------------
他那个数组是用了static定义,不能在main中操作。。。
页:
[1]