piszę i czytanie rejestrów z mapy pamięci, tak:ostrzeżenie: wskaźnik typu „void *” używane w arytmetyce
//READ
return *((volatile uint32_t *) (map + offset));
//WRITE
*((volatile uint32_t *) (map + offset)) = value;
Jednak kompilator daje mi ostrzeżenia tak:
warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
Jak zmienić kod, aby usunąć ostrzeżenia? Używam C++ i Linux.
rzut na "char *" - zakładając, że chcesz * bajt * przesunięcie. czy ty? –
Tak, to jest właściwa mapa jest nieważna *, dziękuję. – user1876942
Musisz rzucić 'map' do wskaźnika na typ rozmiaru 1. Jedynym typem gwarantowanym przez standard dla wielkości 1 jest' char', dlatego musisz go rzucić na 'char *'. –