|
发表于 2006-9-23 14:03:00
|
显示全部楼层
楼主的意思,是定义一个指针数组,ptr_SDRAM[3],它的每个元素是一个指向预定义地址的指针。
unsigned volatile int *ptr_SDRAM1 = (unsigned volatile int *)SDRAM1;
就是给这个数组元素赋值的语句。
我记得在数组的定义中,在数组初始化时,如果采用
unsigned volatile int *ptr_SDRAM[3] = {ptr_SDRAM1, ptr_SDRAM2,ptr_SDRAM3};
的方式进行初始化,是不能使用变量的,必须使用常量。
因此在CCS编译的时候就会提示出错,而用这种方式进行初始化就没问题:
unsigned volatile int *ptr_SDRAM[3] = {(unsigned volatile int *)SDRAM1,
(unsigned volatile int *)SDRAM2,
(unsigned volatile int *)SDRAM3
};
因为SDRAM1,SDRAM2,SDRAM3是宏定义,也就是数值常量。
2楼3楼的意思弄错了吧?
(*(unsigned volatile int *)SDRAM2)就表示0x83400000地址内存储的值,这个值是
不确定的,这样定义数组,编译没问题,但是含义却不对了。 |
|