如何以简单明了的方式定义此值?

时间:2012-09-10 09:39:31

标签: c++

我陷入了函数参数的转换/定义中,非常感谢一些帮助。我相信对于任何有经验的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 - 库。感谢所有帮助我的人!

1 个答案:

答案 0 :(得分:1)

你试过吗

uint8 Addr[] = {0x0,0x16,0x7a,0xcd,0x10,0x4};
uint8 *pAddr = Addr;

注意:不要使用0前缀!这意味着数字是八进制的,因此010在十进制中表示8