Код, который вы процитировали, кажется, является определениями функций.
Заголовочные файлы , которые вы создаете , должны содержать только
- определения макросов
- определения структур, объединений и имен типов-определений
- объявлений переменных
- объявлений функций в виде прототипов
Позже (как только ваши навыки C несколько повысились) вы также можете включить
- определения из
inline
functions
Реализатор компилятора, с другой стороны, может помещать все что угодно в свои заголовочные файлы, если их компилятор ведет себя так, как говорит языковой стандарт. Вам следует полагаться только на документацию компилятора, а не на то, что вы можете интуитивно понять, читая другие файлы, поставляемые с компилятором, чтобы понять его поведение.
Разработчику компилятора разрешено использовать любые волхвы c, которые они выбирают в том числе наличие компилятора Just Know того, какие системные заголовки требуются в стандарте для определения и объявления без каких-либо фактических файлов для этих заголовков, и, если они того пожелают, они могут даже предоставить файлы "заголовков", содержащие поддельные или вводящее в заблуждение содержание.