我陷入了函数参数的转换/定义中,非常感谢一些帮助。我相信对于任何有经验的c / c ++人来说这都是一件容易的事,但不适合我,不是现在。
问题:
创建与myCommmand(uint8 *pAddr)
一起使用的正确参数,该参数将执行send(pAddr, 6)
,这将使用这些参数循环以下6次:
write(reinterpret_cast<unsigned char*>(pAddr)[i]);
我的麻烦是,pAddr必须指向一个6字节的数组,我最好将其定义为无符号字节值(0-255)或十六进制00-FF。
限制
不得更改功能。它只是创建参数。
我的尝试:
uint8 Addr[] = {00,22,122,205,16,04};
uint8 *pAddr = &Addr;
但这会导致错误C2440(无法将uint(*)[6]转换为uint8 *)。
所需解决方案
我想知道良好的,通过将其字节或十六进制值写入我的代码来创建此Addr数组或流,或传递给我的函数的对象的良好方式 - 如在我的尝试中。我可以使用 boost - 库。感谢所有帮助我的人!
答案 0 :(得分:1)
你试过吗
uint8 Addr[] = {0x0,0x16,0x7a,0xcd,0x10,0x4};
uint8 *pAddr = Addr;
注意:不要使用0
前缀!这意味着数字是八进制的,因此010
在十进制中表示8
。