我使用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);
}
任何解決這個幫助表示讚賞! 謝謝!
的錯誤是相當清楚:你正試圖用'void *'初始化'__u8 *',這在C(隱式轉換)中是合法的,但是不在C++ _中(它的類型系統是「更安全」)。或者使用GCC進行編譯或者將'cp'顯式地轉換爲'__u8 *'(但是要注意嚴格的別名問題......) –
在C++中,void指針必須明確指定。 –