【发布时间】:2011-12-20 13:31:11
【问题描述】:
我最近集成了两个在不同硬件架构上运行的应用程序 - 出现的问题包括网络字节排序问题和结构填充问题。
两者都很容易修复 - 特别是对于填充,我只需要在我的网络结构周围添加 pragma:
#pragma pack(1)
struct {};
#pragma pack(0)
我昨天看到了几个与位域相关的问题,但我从未使用过。我想知道...尝试通过使用位域定义结构来停止填充是否更正确?在这种情况下会有所帮助吗?
另外,我在 C++ 代码中没有遇到太多位域 - 它们更像是 C 的东西,用得不多,还是我只是碰巧在不使用它们的代码上工作?
【问题讨论】:
-
您只是没有碰巧处理使用位域的代码。它们在在适当的地方非常有用。合适的地方虽然少而具体。
标签: c++ bit-fields