g ++로 c 코드를 컴파일 중이고 몇 가지 문제가 있습니다. 나는이 오류와 함께 남아있어 지정된 이니셜 라이저를 고정 후 :g ++로 C 코드 컴파일 : 유효하지 않은 변환
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);
}
이 고정 어떤 도움에 감사드립니다! 감사합니다.
는 오류가 예쁜 clear : C (암시 적 변환)에서는 유효하지만 C++ _ (형식 시스템이 "더 안전")에서는 유효하지 않은'void *'를 사용하여'__u8 *'을 초기화하려고합니다. GCC로 컴파일하거나'cp'를'__u8 *'으로 명시 적으로 캐스팅하십시오 (그러나 엄격한 앨리어싱 문제를주의하십시오 ...) –
void 포인터는 명시 적으로 타입 캐스팅되어야합니다. –