Перед компиляцией модуля Erlang он автоматически обрабатывается препроцессором Erlang. Препроцессор разворачивает все макросы, которые могут быть в исходном файле, и вставляет все необходимые включаемые файлы.
Обычно вам не нужно смотреть на выходные данные препроцессора, но в исключительных случаях (например, при отладке неисправного макроса) вы можете сохранить выходные данные препроцессора. Чтобы увидеть результат предварительной обработки модуля some_module.erl, дайте команду оболочки ОС.
erlc -P some_module.erl
Например, предположим, если у нас был следующий файл кода —
пример
-module(helloworld). -export([start/0]). -include("user.hrl"). start() -> io:fwrite("~w",[?macro1(1,2)]).
И если мы выполнили следующую команду из командной строки —
erlc –P helloworld.erl
Будет создан файл с именем helloworld.P . Если вы откроете этот файл, вы найдете следующее содержимое, которое препроцессор скомпилирует.