what is the use of #ifndefs
Amit Pandey
amit.pandey0612 at gmail.com
Tue Jul 21 01:34:15 EDT 2015
Hi Ahmed,
See the comments inline
#ifndef _LINUX_LIST_H // If not defined _LINUX_LIST_H macro
#define _LINUX_LIST_H // then define this macro
#include "linuxlist.h" // and include linuxlist.h header file
#endif // end of #ifndef
Now say in another file if u r not sure whether you have already included
the "linuxlist.h" then you will again repeat above lines of code, assuming
you have included it then certainly _LINUX_LIST_H macro has already been
defined, so compiler will not include this file again. See comments below
#ifndef _LINUX_LIST_H // Since macro _LINUX_LIST_H has already defined
#define _LINUX_LIST_H // compiler will ignore this line
#include "linuxlist.h" // compiler will ignore this line, too.
Hence no multiple inclusion of same header file
#endif
Please let me know whether I was clear with the explanation.
Thanks,
Amit
On Mon, Jul 20, 2015 at 3:33 PM, Ahmed Soliman <ahmedsoliman0x666 at gmail.com>
wrote:
> 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
>
> _______________________________________________
> 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/20150721/7b870722/attachment.html
More information about the Kernelnewbies
mailing list