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

Macros Erlang

Les macros sont généralement utilisées pour remplacer le code en ligne. En Erlang, les macros sont définies par la following statement.

  • - define(Constante, Remplacement).

  • -define(Func(Var1, Var2,.., Var), Remplacement).

Voici un exemple de macro utilisant la première syntaxe-

Exemples utilisant des macros de fonctions

-Exemple 
-module(helloworld)./export([start 
-define(a,1). 
start() -> 
   io:fwrite("~w",[?a]).

Dans le programme ci-dessus, vous pouvez voir que l'extension de la macro est utilisée avec '?'. Les constantes symboliques seront remplacées par les valeurs définies dans la macro.

La sortie du programme suivant sera-

Résultat de la sortie

1

Voici un exemple d'utilisation des macros de fonctions-

Exemples utilisant des macros de fonctions

-Exemple 
-module(helloworld)./export([start 
-0]).1define(macro+(X,Y),{X 
start() ->
   io:fwrite("~w",[?macro1(1,2]).

La sortie du programme suivant sera-

Résultat de la sortie

{3}

Les instructions suivantes peuvent être utilisées pour les macros-

  • undef(Macro)-Le macro n'est pas défini ; par conséquent, vous ne pourrez pas appeler le macro.

  • ifdef(Macro) −Évaluer les lignes suivantes uniquement si le宏est défini.

  • ifndef(Macro) −Évaluer les lignes suivantes uniquement si le宏n'est pas défini.

  • else−Permettre après une instruction ifdef ou ifndef. Si la condition est fausse, évaluer les instructions après else.

  • endif −Marquer la fin des instructions ifdef ou ifndef avec le marqueur -.

Lorsque vous utilisez ces instructions, vous devez les utiliser de la manière correcte comme indiqué dans le programme suivant.

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