Mih*_*csu 1 c struct field offset memory-address
该主题的标题也可能是"size_t足以容纳地址吗?"
我正在尝试获取结构与其中一个字段之间的偏移量,并且我使用size_t变量来保存偏移量:
size_t offset = (size_t)&struct.field - (size_t)&struct;
Run Code Online (Sandbox Code Playgroud)
我知道这有点强迫,我只是想知道我是否会因此而遇到某种错误.我知道我可以使用int做同样的事情,但我想知道它是否可以在64位系统上保存地址.
你对此有何看法?
使用中offsetof找到的宏<stddef.h>.
由于size_t必须有足够大的范围来存储最大可能对象的大小,因此它也足以存储任何结构类型的任何成员的偏移量:结构成员的偏移量不能大于结构.