Thread (11 messages) 11 messages, 10 authors, 2015-07-21

what is the use of #ifndefs

From: Amit Pandey <hidden>
Date: 2015-07-21 05:34:15

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 [off-list ref]
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 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help