正如@litb 指出和@JesperE 所示,offsetof() 提供了一个以字节为单位的整数偏移量(作为一个值)。
你什么时候可以使用它?
可能相关的一种情况是表驱动操作,用于从文件中读取大量不同的配置参数并将值填充到同样庞大的数据结构中。将巨大减少到如此微不足道(并忽略各种必要的现实世界实践,例如在标题中定义结构类型),我的意思是一些参数可能是整数和其他字符串,并且代码可能看起来像:
您现在可以编写一个通用函数,从配置文件中读取行,丢弃注释和空白行。然后它隔离参数名称,并在表中查找它(您可以对其进行排序以便您可以进行二进制搜索 - 多个 SO 问题解决了这个问题)。当它找到正确的记录时,它可以将找到的值和条目传递给两个例程之一——一个用于处理字符串,另一个用于处理整数。
这些功能的关键部分是:
这避免了必须为结构的每个单独成员编写单独的函数。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/10889.html