David Laight wrote:
On Tue, Apr 22, 2008 at 11:50:05PM +0900, Dmitry Timoshkov wrote:
"Erik de Castro Lopo" <mle+win(a)mega-nerd.com> wrote:
/* get pointer to object containing list element */ #define LIST_ENTRY(elem, type, field) \ - ((type *)((char *)(elem) - (unsigned int)(&((type *)0)->field))) + ((type *)((char *)(elem) - (unsigned long)(&((type *)0)->field)))
How about: ((type *)((char *)(elem) - ((char *)(&((type *)0)->field) - (char *)0)))
Much, much better, thank you. I don't know why I didn't see it myself. Cheers, Erik -- ----------------------------------------------------------------- Erik de Castro Lopo ----------------------------------------------------------------- "I saw `cout' being shifted "Hello world" times to the left and stopped right there." -- Steve Gonedes