Erlang 預處理器



在編譯 Erlang 模組之前,它會自動由 Erlang 預處理器進行處理。預處理器會展開原始檔中可能存在的任何宏,並插入任何必要的包含檔案。

通常,您不需要檢視預處理器的輸出,但在特殊情況下(例如,除錯有問題的宏時),您可能希望儲存預處理器的輸出。要檢視模組 some_module.erl 的預處理結果,請使用作業系統 shell 命令。

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 的檔案。如果您開啟此檔案,您將找到以下內容,這就是預處理器將編譯的內容。

-file("helloworld.erl", 1). -module(helloworld).

-export([start/0]).
-file("user.hrl", 1).
-file("helloworld.erl", 3).

start() ->
   io:fwrite("~w", [{1 + 2}]).
廣告