📅  最后修改于: 2020-11-04 05:55:32             🧑  作者: Mango
宏通常用于内联代码替换。在Erlang中,宏是通过以下语句定义的。
以下是使用第一种语法的宏示例-
-module(helloworld).
-export([start/0]).
-define(a,1).
start() ->
io:fwrite("~w",[?a]).
从上面的程序中,您可以看到使用“?”扩展了宏。符号。常量将替换为宏中定义的值。
上面程序的输出将是-
1
使用函数类的宏的示例如下-
-module(helloworld).
-export([start/0]).
-define(macro1(X,Y),{X+Y}).
start() ->
io:fwrite("~w",[?macro1(1,2)]).
上面程序的输出将是-
{3}
以下附加语句可用于宏-
undef(宏) -取消定义宏;此后,您将无法调用宏。
ifdef(Macro) -仅在定义了宏之后才评估以下几行。
ifndef(Macro) -仅当未定义Macro时才评估以下几行。
其他-一个IFDEF后或IFNDEF语句允许。如果条件为假,则评估else后面的语句。
endif-标记ifdef或ifndef语句的结尾。
使用上述语句时,应按照以下程序中所示的正确方式使用它。
-ifdef().
-define(...).
-else.
-define(...).
-endif.