English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

البرمجيات الماكرو في Erlang (Macros)

宏通常用于内联代码替换。在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.