Препроцессор #ifndef
Предположим, у меня естьa.h
который включает в себя следующее:
<stdbool.h>
<stddef.h>
<stdin.h>
Предположим, у меня также естьb.h
который также включает в себя<stdbool.h>
, Еслиa.h
имеет#ifndef
утверждение определения препроцессора в нем иb.h
не делает. Будетa.h
включать только то, что не было включено вb.h
? Так когдаb.h
включаетa.h
, будемa.h
включаютstddef.h
а такжеstein.h
и не включать зановоstdbool.h
или эти функции определения препроцессора используются только для того, чтобы увидеть, переопределен ли весь этот класс, а не конкретные функции внутри него?
РЕДАКТИРОВАТЬ:
Также предположимb.h
включает в себя еще один заголовочный файл, который включает в себяstdbool.h
-что делаетb.h
имеютstdbool.h
как из этого класса, так иa.h
, Это приведет к ошибкам?