作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我被困在函数参数的转换/定义中,非常感谢您的帮助。我相信对于任何有经验的 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 库。感谢所有帮助我解决这个问题的人!
最佳答案
你试过吗
uint8 Addr[] = {0x0,0x16,0x7a,0xcd,0x10,0x4};
uint8 *pAddr = Addr;
?
注意:不要使用 0
前缀!这意味着数字是八进制的,所以 010
表示 8
in dec.
关于c++ - 我怎样才能以一种简单易行的方式定义这个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12349001/
我是一名优秀的程序员,十分优秀!