`
spartan1
  • 浏览: 367003 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

erlang(6) -- macro

 
阅读更多

erlang中的预处理类似C中的预处理:

 

包含:-include(File).
File是一个表示路径的字符串,其中可以含有$VAR表示的环境变量引用,可以是绝对路径,也可以是相对路径,相对路径的话,将从当前工作目录cwd,当前正在编译的文件所在的路径以及include选项指定的系列路径中依次按顺序寻找。

 

宏:-define(Const, Replacement). -define(Func(Var1,...,VarN), Replacement).
引用宏时使用?Const或?Func(Arg1,...,ArgN)的方式进行引用。
宏还可以使用如下方式进行定义:
erlc -Ddebug xxx.erl
c(xxx, {d, debug}).
宏定义中,把宏变为一个字符串(类似C语言中的#arg):??Arg

 

条件编译:-ifdef(Macro). -ifndef(Macro). -else. -endif.

 

分享到:
评论

相关推荐

    erlang 参考手册 模块部分--自己翻译的中文版

    - `-define(Macro, Replacement)`:定义宏,Macro是宏名,Replacement是替换值。 4.2.5 设置文件和行数 `-file(File, Line)`特性用于通知编译器源文件信息,常用于预处理器生成的代码,如Yecc。 4.3 注释 Erlang中...

    Erlang 速查表 v1.0.pdf

    Erlang是一种用于构建并发、分布和容错系统的编程语言和运行时环境。Erlang拥有一个独特的语法和一套内置的数据类型,以及专门为并发编程设计的库。下面将详细介绍Erlang速查表中提到的一些关键知识点。 ### 变量和...

    erl_nif_rustler_过程宏写法

    在Erlang中,`NIF (Native Implemented Functions)` 是一种机制,允许开发者使用其他语言(如C或Rust)...通过理解`rustler_macro`的过程宏和Erlang NIF的生命周期,开发者可以轻松地将Rust功能集成到Erlang系统中。

    defun:定义带有参数模式匹配的clojure函数的宏,就像erlang或elixir

    `defun`是Clojure中的一个宏(macro),它的作用与标准的`def`函数类似,都是用于定义变量。然而,`defun`扩展了`def`的功能,增加了对参数模式匹配的支持。这使得我们可以根据传入参数的不同类型或结构来定义不同的...

    Elixir 元编程

    Elixir是一种功能强大的函数式编程语言,它建立在 Erlang VM (BEAM) 上,提供高效、并发以及容错的能力。元编程是Elixir的一个核心特性,允许程序员在运行时动态地创建和修改代码。本文将深入探讨Elixir的元编程机制...

    Programming Elixir

    Because Elixir runs on the Erlang VM, and uses the underlying Erlang/OTP architecture, it benefits from almost 20 years of research into high performance, highly parallel, and seriously robust ...

    efe:长生不老药风味的二郎

    长生不老药风味的二郎 Erlang到Elixir编译器 检查 ,以获取此工具生成的输出示例。 这是一个具有更多详细信息的博客文章: : 建造 ... % map of macro names and what they should expand to macros

    programming_elixiir:プログラミングElixir(第2版)https

    6. **模块和命名空间** Elixir中的模块作为代码组织的基本单位,可以包含函数、类型定义和行为。模块还提供命名空间,避免了全局命名冲突。 7. **宏(Macro)** Elixir的宏是在编译时执行的代码,可用于生成其他...

    2019年10月

    它的元编程能力,如Macro,允许开发者在编译时创建代码,提供了高度的灵活性。另外,Elixir的模块系统和行为(Behaviours)使得实现设计模式变得简单,比如GenServer,它是OTP的一部分,用于构建状态管理的后台服务...

    宏编译器:Event EventMacro到OpenKore插件的编译器

    Elixir是一种基于Erlang虚拟机的函数式语言,以其并发性和容错性著称。在编译领域,Elixir可以用来创建高效且灵活的编译器,处理复杂的转换任务。 "Hacktoberfest"标签表明这个项目可能参与了Hacktoberfest活动,这...

    Total Commander(TC)的CudaLister插件(32位和64位),含223个语法高亮文件,可预览大量文本文件类扩展名

    MacroScript_(Macro_Sheduler).lcf JCL.lcf Gold_Parser.lcf Adobe_Flash.lcf XSLT.lcf VHDL.lcf T-SQL.lcf Smalltalk.lcf Rexx.lcf PL_SQL.lcf Modula 2.lcf KiXtart.lcf IDL language.lcf IDL files....

    codewars_elixir

    `Macro`是实现元编程的主要手段,它们在编译期间被展开为Elixir代码。通过元编程,开发者可以创建DSL(领域特定语言),简化复杂任务的编写。 **Elixir中的数据结构** Elixir提供了多种内置数据结构,如列表、元组...

    exercism:达斯蒂的运动解决方案

    6. **管道操作符(|>)**:Elixir的管道操作符允许你将一系列操作串联起来,从一个函数的输出直接传递到另一个函数的输入,提高了代码的清晰度。 7. **类型系统和模式**:虽然Elixir是动态类型的,但你可以使用类型...

    elixir_code_snippets

    `Macro`是实现元编程的主要工具,它们在编译时展开,可以用来创建新的语法结构或动态生成函数。 **过程代表示法(Process)** Erlang和Elixir中的进程是轻量级的并发实体,用于实现actor模型。每个进程有自己的...

    pepabo.ex:Elixir勉强会演习问题解答例

    Elixir是一种基于Erlang VM(BEAM)的函数式编程语言,设计用于构建可扩展和高并发的系统。在“pepabo.ex:Elixir勉强会演习问题解答例”中,我们可以期待看到一系列针对Elixir语言特性和实践的练习及其解答。 1. **...

    ELIXIR:lix剂含量

    例如,`Macro`宏系统让我们可以在编译阶段执行代码,创建自定义语法糖,简化复杂逻辑。同时,`Code.compile_string/1`和`Code.eval_string/1`等函数则提供了动态执行代码的能力。 Elixir的模块系统(Module)是其...

Global site tag (gtag.js) - Google Analytics