Учебники

Erlang — Препроцессоры

Перед компиляцией модуля 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 . Если вы откроете этот файл, вы найдете следующее содержимое, которое препроцессор скомпилирует.