我想获取结构中特定成员的大小。
sizeof(((SomeStruct *) 0)->some_member)
对我有用,但我觉得可能有更好的方法来做到这一点。
我可以#define SIZEOF_ELEM(STRUCT, ELEM) sizeof(((STRUCT *) 0)->ELEM)
然后使用SIZEOF_ELEM(SomeStruct, some_member)
,但我想知道是否已经有更好的内置功能。
我的具体用例在 hsc2hs(Haskell C 绑定)中。
pokeArray (plusPtr context (#offset AVFormatContext, filename)) .
take (#size ((AVFormatContext *) 0)->filename) .
(++ repeat '\NUL') $ filename