Файлы заголовков похожи на файлы include на любом другом языке программирования. Это полезно для разделения модулей на разные файлы и последующего доступа к этим заголовочным файлам в отдельные программы. Чтобы увидеть заголовочные файлы в действии, давайте посмотрим на один из наших ранних примеров записей.

Давайте сначала создадим файл user.hrl и добавим следующий код:

-record(person, {name = "", id}).
-module(helloworld). 
-export([start/0]). 
-include("user.hrl"). 

start() -> 
   P = #person{name = "John",id = 1}, 
   io:fwrite("~p~n",[P#person.id]), 
   io:fwrite("~p~n",[P#person.name]).

Как вы можете видеть из приведенной выше программы, мы на самом деле просто включая файл user.hrl , который автоматически вставляет -recordкода в нем. Вы также можете сделать то же самое с макросами, вы можете определить макрос внутри файла заголовка и ссылаться на него в основном файле.

-define(macro1(X,Y),{X+Y}).
-module(helloworld). 
-export([start/0]). 
-include("user.hrl"). 

start() -> 
   io:fwrite("~w",[?macro1(1,2)]).