我有一个小程序,我使用打印使用结构成员的偏移offsetof()
算子。
我在很多情况下,如有关的结构是不同的使用这个程序,所以我需要重新编写代码为每个项目(和每个修改我做的结构)。 由于这些结构往往是相当大的(控制和状态结构),更新会消耗大量的时间。
我想有是在那里我可以使用的方法offsetof()
相当,但在第二个参数是成员的姓名,给出一个字符串,而不是硬编码在声明。
为了简化,让我们假设该结构由单和数组以下资料─32位字,因此偏移量是总是4的倍数。
此外,而不是名称字符串,另一种方法是值得欢迎的。
[ 注意,虽然成员都是字大小,仍然只是通过计数构件计算的地址不是因为编译器会成员之间添加填充一个很好的解决方案。 作为一个答案(其除去)建议,使用packed属性可通过移除填补处理解决的问题,这是不作为实际应用,其限定该结构可以使用填充用于优化存储器访问一个有效的解决方案 ]