<div dir="ltr"><div><div><div><div>&lt;snip&gt;<br>&gt;&gt; I dont understand what goal is it supposed to achieve<br>&gt;&gt; at the beginning of the headerfile<br>&lt;snip&gt;<br><br>The &#39;goal&#39; is to prevent &#39;redefinition&#39; errors, like Stephan Müller said it is a &#39;include guard&#39;. <br><br>A explanation of why and how to use include guards can be found here: <a href="https://en.wikipedia.org/wiki/Include_guard">https://en.wikipedia.org/wiki/Include_guard</a><br><br></div>When I try : find . -name &quot;*.c&quot; -o -name &quot;*.h&quot; | xargs grep -i &quot;include &lt;linux/list.h&gt;&quot; | wc -l<br><br></div>It gives me 1319 instances where list.h is being included, imagine your function being redefined that many times. Not only will gcc bitch and complain about redefinition errors but go screaming into the night like Valdis says.. [grin]<br><br></div>If you still have difficulty understanding why, the best way would be to write some simple code yourself then compile, you will start to see why we require the #ifndef.<br><br></div>Thanks - Aruna <br><div><div><br><br><br><div><br><div><br><br></div></div></div></div></div>