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