Компиляция кода C с помощью g ++: неверное преобразование

Я компилирую код C с помощью g ++ и работаю с некоторыми проблемами.
после исправления назначенных инициализаторов я остаюсь с этой ошибкой:

error: invalid conversion from 'void*' to '__u8*'

Это мой код:

static inline void put_unaligned_le16(__u16 val, __u16 *cp)
{
__u8    *p = (void *)cp;

*p++ = (__u8) val;
*p++ = (__u8) (val >> 8);
}

Любая помощь, исправляющая это, ценится!
Спасибо!

-2

Решение

Не пытайтесь компилировать код C с помощью компилятора C ++. Когда-либо. Они очень разные, разные языки.


(Если вы все же делаете по какой-то странной мазохистской причине, то вы должны void * в __u8 *, потому что в C ++ неявное преобразование из void * не бывает Очень плохо.)

4

Другие решения

Других решений пока нет …