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?