On Tue, Jul 21, 2015 at 11:04:15AM +0530, Amit Pandey wrote: > 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@xxxxxxxxx> > 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@xxxxxxxxxxxxxxxxx > > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@xxxxxxxxxxxxxxxxx > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies Your explanation seems to be wrong. The code below should in "linuxlist.h" ,other than in other files which include "linuxlist.h". #ifndef _LINUX_LIST_H #define _LINUX_LIST_H ... #endif _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies