------- Comment #3 from pinskia at gcc dot gnu dot org 2007-01-05 20:13 ------- > anther, consider an example definite[2] of 'offsetof', if you think > that is undefined, it's almost impossible to give a definite of > offsetof.
> #define offsetof(TYPE,MEMBER) ((size_t)&((TYPE*)0)->MEMBER) The C standard still says that is undefined. See 6.5.3.2/4. Also GCC has a builtin for offsetof to get around the undefinedness of the above. You can also define offsetof like: #define offsetof(TYPE,MEMBER) (((size_t)&((TYPE*)128)->MEMBER) - 128) Which gets around the undefined issue. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30368