Assume I have a.h
which includes the following:
<stdbool.h>
<stddef.h>
<stdin.h>
Assume I also have b.h
which also includes <stdbool.h>
. If a.h
has the #ifndef
preprocessor definition statement in it and b.h
doesn't. Will a.h
include only what hasn't been included in b.h
? So when b.h
includes a.h
, will a.h
include stddef.h
and stein.h
and not re-include stdbool.h
or are those preprocessor definition functions only used to see whether this whole class is redefined, and not specific functions within it?
EDIT:
Also, assume b.h
includes another header file which includes stdbool.h
-that makes b.h
have stdbool.h
both from that class and a.h
. Will that cause errors?
All C standard headers must be made such that they can be included several times and in any order:
Standard headers may be included in any order; each may be included more than once in a given scope, with no effect different from being included only once