Erlang:如何在模块外部使用-define宏?

时间:2010-09-28 20:38:56

标签: erlang

假设我有模块test.erl,里面是宏TOTAL

-module(test)
-export([...])

-define(TOTAL,(100))

...

如果在test.erl中定义了get_total(),我可以从REPL中调用test:get_total().

如何在不定义函数的情况下调用模块test.erl之外的?TOTAL(宏)?

1 个答案:

答案 0 :(得分:15)

您可以将-define放在test.hrl文件中,并使用-include将其包含在其他模块中。有关详细信息,请参阅Erlang Preprocessor documentation

test.hrl

-define(TOTAL, (100)).

test.erl

-module(test).
-export([...]).

-include("test.hrl").

...

other.erl

-module(other).

-include("test.hrl").

io:format("TOTAL=~p~n", [?TOTAL]).