English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
宏通常用于内联代码替换。在Erlang中,宏是通过以下语句定义的。
- define(Constant, Replacement)。
-define(Func(Var1, Var2,.., Var), Replacement).
以下是使用第一种语法的宏示例-
-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(Macro)-لم يتم تعريف الماكرو؛ لن تستطيع بعد ذلك استدعاء الماكرو.
ifdef(Macro) -تقييم الجملة التالية فقط إذا تم تعريف الماكرو.
ifndef(Macro) -تقييم الجملة التالية فقط إذا لم يتم تعريف الماكرو.
else-السماح بعد جملة ifdef أو ifndef. إذا كانت الشروط خاطئة، يتم تقييم الجملة بعد else.
endif -علامة نهاية جملة ifdef أو ifndef.
باستخدام هذه الجملة، يجب عليك استخدامها بشكل صحيح وفقًا للطريقة الموضحة في البرنامج التالي.
-ifdef(<FlagName>). -define(...). -else. -define(...). -endif.