为什么我不能将十六进制值分配给foo * const array []?

时间:2016-06-08 09:20:04

标签: c

在CCS6中,我无法正常运行此程序。

T1(,A1,A2)

我得到的警告是:

  

“#145-D”类型“int”的值不能用于初始化实体   类型为“io_hw_t * const”

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

在初始化中提供显式强制转换为:

io_hw_t *const  io[] = {(io_hw_t *)PABASE, (io_hw_t *)PBBASE};

io被声明为const指向io_hw_t的数组。所以每个成员必须是一个指针。但是PABASE是整数常量,需要显式地转换为指针。

或者,您也可以在宏中添加强制转换:

#define PABASE ((void *)0x200)