Macro explanation

Manohar Vanga manohar.vanga at gmail.com
Fri Mar 9 13:40:23 EST 2012


Also, from the archives:
http://www.mail-archive.com/kernelnewbies@nl.linux.org/msg12320.html

On Fri, Mar 9, 2012 at 7:21 PM, Vijay Chauhan <kernel.vijay at gmail.com>wrote:

> Hi,
>
> I'm checking the container_of and offsetof macro
>
> #define container_of(ptr, type, member) ({ \
>                const typeof( ((type *)0)->member ) *__mptr = (ptr);
>                (type *)( (char *)__mptr - offsetof(type,member) );})
>
> #define offsetof(TYPE, MEMBER) \
>  ((size_t) &((TYPE *)0)->MEMBER)
>
>
> I did not understand the first line of both macro. Will it not create
> the NULL pointer dereference problem? I know it works and read some
> article but it did not explain this part, so can anyone explain why
> the NULL pointer error is not coming. Am I missing something?
> Any C language specification of such example.
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>



-- 
/manohar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120309/0d6b4b09/attachment.html 


More information about the Kernelnewbies mailing list