我们应该在什么时候使用packsize来指定结构布局
when should we use packsize to specify the struct layout?
有时我认为我们可以指定包大小来指定结构的布局。我想知道,如果有任何情况,我们必须指定包装尺寸?
当您需要内存布局与其他地方定义的二进制格式(例如文件格式或网络协议)完全匹配时。
通常应该避免这种情况。合适的边缘情况是当使用结构在各种体系结构的机器之间进行通信时(例如,在通过网络传递的数据中)。然而,即使在这种情况下,您也必须意识到您支持的所有体系结构都存在任何对齐问题(例如,如果它只允许访问四字边界)。
我唯一一次使用它是在VB程序调用C++DLL时。这些结构必须匹配或不起作用。
如果您谈论的是#pragma pack
,它用于指定数据对齐。如果要获取结构的大小(例如内存分配),请使用sizeof
运算符。
structSize = sizeof( myStructType );
相关文章:
- 更正GLSL无绑定纹理句柄中的结构布局
- 假设传递给 OpenGL 的结构数组的内存布局存在潜在错误
- COM 互操作结构定义与内存布局不匹配
- 结构中的内存布局差异
- 执行匿名结构更改布局和填充
- 在匿名结构中包装灵活数组时,MSVC结构布局是否更改
- 非结构对象布局
- 为什么这个结构不是标准布局
- C 的不同内存布局包装结构
- 对象/结构等的C++内存布局是什么?
- 结构前缀的布局
- 将模板生成的类分配给具有相同布局的 C 结构
- 如何知道 c 中结构数据的布局
- 我们应该在什么时候使用packsize来指定结构布局
- 结构内存布局 在 C 语言中
- 对的向量和包含两个元素的结构体的向量的内存布局的区别- c++ /STL
- Gcc /clang在基结构的后填充中布局派生结构的字段
- C++结构内存布局和OpenGL glVertexPointer
- 我可以将final关键字应用于c++ 11中的POD(标准布局)结构体吗?我应该
- 当c++没有指定结构布局时,为什么glBufferData可以缓冲UBO和SSBO的结构