A header's contents are made available to a translation unit when it contains the appropriate #include preprocessing directive.
A translation unit shall include a header only outside of any external declaration or definition, and shall include the header lexically before the first reference to any of the entities it declares or first defines in that translation unit.