what is the use of #ifndefs

anish singh anish198519851985 at gmail.com
Mon Jul 20 13:00:41 EDT 2015

On Mon, Jul 20, 2015 at 3:03 AM, Ahmed Soliman <ahmedsoliman0x666 at gmail.com>

> currently I started reading through the linux kernel and I started
> reading liunx/include/linux/list.h> I understood some of the functions
> but still I dont know what does these lines of code do
> #ifndef _LINUX_LIST_H
> #define _LINUX_LIST_H
> which exist at the very beginning of the file
> I also noticed that there is many similar ifndefs in almost any .h
> file in the kernel
> note that I understand wnat does ifndef do bu I dont understand what
> goal is it supposed to achieve at the beginning of the headerfile

It makes sure that the file doesn't get included twice.Suppose
you have a.c and a.h file and  you have #include "thisfile"(where
you have that #ifndef thing) in both a.c and a.h file then it will
be included only once. Because once .c or .h includes it then
that particular #define is already defined so next time it will
not execute when someone tries to include it again.

Hope that helps.

> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150720/e8258c98/attachment.html 

More information about the Kernelnewbies mailing list