Компиляция кода 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);
}
Любая помощь, исправляющая это, ценится! Спасибо!
1 ответ
Не пытайтесь компилировать код C с помощью компилятора C++. Когда-либо. Они очень разные, разные языки.
(Если вы все же делаете по какой-то странной мазохистской причине, то вы должны void *
в __u8 *
потому что в C++ неявное преобразование из void *
не бывает Очень плохо.)