[英]C++ syntax for const void pointer
使用const void指針時,我需要C ++語法方面的幫助。
我通過一個函數const void數組(即我不知道它是什么數據類型)。 然后,我需要逐字節將內存塊復制到本地無符號char數組中(偏移量為2)。
局部數組在函數外部聲明,我知道它將永遠足夠大。 這是代碼:
void writeFram(const void* data, unsigned int startAddr, size_t size)
{
i2cBuffer[0] = startAddr >> 8;
i2cBuffer[1] = startAddr & 0xFF;
for(unsigned char i=0;i<size;++i)
{
i2cBuffer[i+2] = *static_cast<unsigned char*>(data);
}
}
我得到的錯誤是:錯誤:從類型'const void *'到類型'unsigned char *'的static_cast丟棄了限定符
不要拋棄constness:
i2cBuffer[i+2] = *static_cast<const unsigned char*>(data)
// ^^^^^
這就是const_cast
目的。 但是您不應該使用它。 強制轉換為const unsigned char *
並沒有錯,因為您將要復制該值。
當然,您也可以使用memcpy
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.