宏通常用于内联代码替换,在Erlang中,宏是通过以下语句定义的。
以下是使用第一种语法的宏示例-
-module(helloLearnfk). -export([start/0]). -define(a,1). start() -> io:fwrite("~w",[?a]).
上面程序的输出将是-
1
使用函数类的宏的如下-
-module(helloLearnfk). -export([start/0]). -define(macro1(X,Y),{X+Y}). start() -> io:fwrite("~w",[?macro1(1,2)]).
上面程序的输出将是-
{3}
以下附加语句可用于宏-
undef(Macro) - 取消定义宏,之后,您将无法调用该宏。
ifdef(Macro) - 仅在定义了宏之后才执行以下各行。
ifndef(Macro) - 仅当未定义Macro时才执行以下几行。
else - 在ifdef或ifndef语句之后允许。如果条件为假,则执行else之后的语句。
endif - 标签ifdef或ifndef语句的结尾。
使用上述语句时,应按照以下程序中所示的正确方式使用它。
-ifdef(<FlagName>). -define(...). -else. -define(...). -endif.
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)