我写和从存储器映射寄存器读取,像这样使用“无效*”的指针:警告:类型算术
//READ
return *((volatile uint32_t *) (map + offset));
//WRITE
*((volatile uint32_t *) (map + offset)) = value;
但是编译器给了我这样的警告:
warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
如何更改我的代码以删除警告?我正在使用C++和Linux。
转换为'char *' - 假设您需要* byte *偏移量。你做? – 2014-11-05 11:06:50
是的,这是正确的地图是无效*,谢谢。 – user1876942 2014-11-05 11:09:54
您需要将'map'强制转换为大小为1的指针。标准保证大小为1的唯一类型是'char',因此您需要将其转换为'char *'。 – 2014-11-05 11:17:38