Use offsetof in offset functions.
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