Препроцессор #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, Это приведет к ошибкам?

Ответы на вопрос(3)

Ваш ответ на вопрос