我有一个请求char*的API,这是我的API函数:
CANMessage(unsigned _id, const char* _data, char _len = 8)
此处提供更多信息:https://os.mbed.com/docs/mbed-os/v5.11/mbed-os-api-doxy/classmbed_1_1_c_a_n_message.html
我想从另一个函数中调用此函数,但是我对const char*和强制转换感到困惑。 我想从函数foo()调用此函数,如下所示:
void foo(unsigned int id, /*???*/ data, char len) {
CANMessage(id, data, len)
}
所以我需要将id,data和len传递给foo函数。 我的问题是,传入的data是uint8_t类型。 我得到了uint8_t的向量,其中第一个元素的地址是我需要传递的地址:
vector dta;
我尝试通过&dta[0]传递:foo(idNo, &dta[0], length)
使用foo函数是这样的:
void foo(unsigned int id, uint8_t* data, char len) {
CANMessage(id, (char*)data, len)
}
但是我得到"类型为std :: uint8_t的参数与char类型的参数不兼容*
当调用函数foo接受uint8_t*时,如何将其作为const char*传递?
请注意,我无法更改类型,dta必须保持vecto