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

Erlang 매크로(Macros)

매크로는 일반적으로 인라인 코드 대체에 사용됩니다. Erlang에서 매크로는 다음 문장을 통해 정의됩니다.

  • - define(Constant, 대체).

  • -define(Func(Var1, Var2,.., Var), 대체).

첫 번째 문법을 사용한 매크로 예제는 다음과 같습니다-

在线示例

-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 문장 이후에 허용.

  • endif −ifdef 또는 ifndef 문장의 끝을 −표시.

위의 문장을 사용할 때는 다음 프로그램에서 보여지는 올바른 방식으로 사용해야 합니다.

-ifdef(<FlagName>).
-define(...).
-else.
-define(...).
-endif.