|
|
1
-1
你的安全问题似乎是
通过工会进行的PS型夯实 perfectly well-defined . |
|
2
-1
我相信以下是我问题的最佳答案之一。我使用了@0 andriy提供的链接到内核源代码中的现有示例。 转换有符号16位值以进行传输
转换多个有符号16位值以进行传输
一个快速的免责声明,我仍然需要检查这个代码是否正确/编译。 总的来说,我对复制和转换多个值的endianness的解决方案有点不满意,因为它容易出现拼写错误,而且可以很容易地实现为宏。 |
|
3
-2
如果Linux机器总是小endian的,并且协议总是大endian的,那么代码工作正常,您不需要更改任何东西。 如果出于某种原因需要使Linux代码endian独立,那么可以使用:
如果存在强制转换以确保不对签名类型执行正确的移位,则签名类型将调用非可移植实现定义的行为。
与任何其他版本相比,位移位的优势在于它们在硬件和终结点之上的抽象级别上工作,允许特定的编译器生成底层内存访问的指令。代码,例如
|
|
|
Jamboree · 在C++17中,分配器是否处理对齐类型? 9 年前 |
|
|
afiori · 访问结构并集中结构的第一个字段 9 年前 |
|
BrodieG · R\u分配和对齐注意事项 9 年前 |
|
|
dempzorz · 将任意元素存储在连续内存中 10 年前 |
|
|
kgbook · 关于内存对齐的一些困惑 10 年前 |
|
vandale · x64程序集中的堆栈对齐 13 年前 |