Use offsetof in offset functions.

Let's restore some sanity, shall we?

The old macros looked crazy and they basically used the same code used in the offsetof() definition inside ANSI C. Compilers may provide even more optimized versions. http://en.wikipedia.org/wiki/Offsetof