This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

#ifndef does not work properly

Hello!

I want to include the same headerfile in more than one sourcefile and of course have to take care that each Headerfile is included just once.

I really have no clue, why this works for the Headers provided by Keil but not with my own ones:

#ifndef _MYHEADER_H_
#define _MYHEADER_H_

//Headerfile content
. ..

#endif

Obviously the preprocessor includes the Headerfile more than once and so i get errors.

When i add a statement within my Header like:

#warning "included more than once"

the warning message appears twice. (so the header is really included twice).

Can anyone tell me the problem please?!

Kind regards

Parents
  • Example 2 should have read:

    Example 2:
    global.h
    header1.h -> includes global.h
    header2.h -> includes global.h as well
    file1.c -> include header1.h -> OK
               include header2.h -> ERROR, global.h already included
    file2.c -> include header1.h -> OK
               include header2.h -> ERROR, global.h already included
    

    Sorry about that...

    --
    J

Reply
  • Example 2 should have read:

    Example 2:
    global.h
    header1.h -> includes global.h
    header2.h -> includes global.h as well
    file1.c -> include header1.h -> OK
               include header2.h -> ERROR, global.h already included
    file2.c -> include header1.h -> OK
               include header2.h -> ERROR, global.h already included
    

    Sorry about that...

    --
    J

Children
No data