Finding offset of a structure element in c

后端 未结 6 1010
自闭症患者
自闭症患者 2020-12-03 09:46
struct a
{
    struct b
    {
        int i;
        float j;
    }x;
    struct c
    {
        int k;  
        float l;
    }y;
}z;

Can anybody

6条回答
  •  爱一瞬间的悲伤
    2020-12-03 10:17

    Here's a generic solution:

    #if defined(__GNUC__) && defined(__GNUC_MINOR__)
    #  define GNUC_PREREQ(minMajor, minMinor) \
             ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((minMajor) << 16) + (minMinor))
    #else
    #  define GNUC_PREREQ 0
    #endif
    
    #if GNUC_PREREQ(4, 0)
    #  define OFFSETOF(type, member) ((int)__builtin_offsetof(type, member))
    #else
    #  define OFFSETOF(type, member) ((int)(intptr_t)&(((type *)(void*)0)->member) )
    #endif
    

提交回复
热议问题