如何将const unsigned char *转换为uint8 *

时间:2015-02-25 17:32:06

标签: c++

我正在使用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 *的转换。

1 个答案:

答案 0 :(得分:-6)

只需将(uint8*)添加到您的buf参数:

MemRead (addr, (uint8*)buf, nbytes);

修改

我忽略了buf指针未声明为const。如某些评论中所述,此时的演员是不必要的。但是,可以通过预先(uint8*)来完成投射。如果这是好的做法是另一个问题。