gpt4 book ai didi

c++ - 如何计算结构的偏移量

转载 作者:太空宇宙 更新时间:2023-11-04 05:30:35 25 4
gpt4 key购买 nike

我找到了一种计算结构偏移量的方法。如下:

#define offsetOf(type , f)  ((int)\
((char *)&((struct tagName*)0)->f-(char*)(struct tagName*)0));

但我经常这样写:

#define offsetOf(type , f)  ((int)(&((struct tagName*)0)->f); 

书上说NULL指针相减是为了确​​保NULL指针内部非零时正确。但我认为 NULL 指针的内部不会影响 NULL 指针的地址。

最佳答案

标准库应该提供一个 offsetof 来完全满足您的需求,我强烈建议您使用它,因为许多编译器会对需要的代码类型发出警告自定义变体。

无论如何,减法会将您的代码从指针域带到size_t 的域。我会说它更安全一些。

关于c++ - 如何计算结构的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7359306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com