0

我被困在函数参数的转换/定义中,非常感谢一些帮助。我相信这对任何有经验的 c/c++ 人来说都是一件容易的事,但对我来说不是,现在不是。

问题:

创建正确的参数以使用 with 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-array 或流,或传递给我的函数的对象,通过将它们的字节或十六进制值写入我的代码 - 就像我的尝试一样。我可以使用boost -libraries。感谢所有帮助我解决这个问题的人!

4

1 回答 1

1

你有没有尝试过

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

?

注意:不要使用0前缀!这意味着数字是八进制的,所以0108十进制的。

于 2012-09-10T09:42:42.597 回答