我正在使用API函数,其中数据应作为(uint8 *)类型传递。 但我得到类型(const unsigned char *)形式的数据。 这是我的示例实现:
virtual int
read_data (uint32 addr, unsigned char *buf, size_t *nbytes)
{
MemRead (addr, buf, nbytes);
return 0;
}
收到以下错误:
error: invalid conversion from 'const unsigned char*' to
'uint8* {aka unsigned char*}' [-fpermissive]
那么,如何管理从const unsigned char *到uint8 *的转换。
答案 0 :(得分:-6)
只需将(uint8*)
添加到您的buf
参数:
MemRead (addr, (uint8*)buf, nbytes);
修改强>
我忽略了buf
指针未声明为const
。如某些评论中所述,此时的演员是不必要的。但是,可以通过预先(uint8*)
来完成投射。如果这是好的做法是另一个问题。