<div dir="ltr">Hi Ahmed,<div><br></div><div>See the comments inline</div><div>#ifndef _LINUX_LIST_H      // If not defined _LINUX_LIST_H macro</div><div>#define _LINUX_LIST_H     // then define this macro</div><div>#include &quot;linuxlist.h&quot;             // and include linuxlist.h header file  </div><div>#endif                                   //  end of #ifndef</div><div><br></div><div>Now say in another file if u r not sure whether you have already included the &quot;linuxlist.h&quot; 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</div><div><br></div><div><div>#ifndef _LINUX_LIST_H      // Since macro _LINUX_LIST_H  has already defined</div><div>#define _LINUX_LIST_H     // compiler will ignore this line</div><div>#include &quot;linuxlist.h&quot;             // compiler will ignore this line, too. Hence no multiple inclusion of same header file</div><div>#endif       </div></div><div><br></div><div>Please let me know whether I was clear with the explanation.</div><div><br></div><div>Thanks,</div><div>Amit</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 20, 2015 at 3:33 PM, Ahmed Soliman <span dir="ltr">&lt;<a href="mailto:ahmedsoliman0x666@gmail.com" target="_blank">ahmedsoliman0x666@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">currently I started reading through the linux kernel and I started<br>
reading liunx/include/linux/list.h&gt; I understood some of the functions<br>
but still I dont know what does these lines of code do<br>
#ifndef _LINUX_LIST_H<br>
#define _LINUX_LIST_H<br>
which exist at the very beginning of the file<br>
I also noticed that there is many similar ifndefs in almost any .h<br>
file in the kernel<br>
note that I understand wnat does ifndef do bu I dont understand what<br>
goal is it supposed to achieve at the beginning of the headerfile<br>
<br>
_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" rel="noreferrer" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</blockquote></div><br></div>