首页 > 其他分享 >无涯教程-Erlang - 预处理

无涯教程-Erlang - 预处理

时间:2023-12-03 16:01:05浏览次数:41  
标签:无涯 module start 处理器 erl Erlang 预处理 helloLearnfk

在编译Erlang模块之前,它会由Erlang预处理程序自动处理,预处理器会扩展源文件中可能存在的所有宏,并插入任何必要的包含文件。

通常,您不需要查看预处理器的输出,但是在特殊情况下(如,调试错误的宏时),您可能希望保存预处理器的输出,要查看模块 some_module.erl 的预处理输出,请提供OS Shell命令。

erlc -P some_module.erl

如,假设我们有以下代码文件-

-module(helloLearnfk). 
-export([start/0]). 
-include("user.hrl"). 

start() -> 
   io:fwrite("~w",[?macro1(1,2)]).

如果我们从命令行执行以下命令,

erlc –P helloLearnfk.erl

将会生成一个名为 helloLearnfk.P 的文件,如果打开此文件,则会发现以下内容,这些内容是预处理器将编译的内容。

-file("helloLearnfk.erl", 1). -module(helloLearnfk).

-export([start/0]).
-file("user.hrl", 1).
-file("helloLearnfk.erl", 3).

start() ->
   io:fwrite("~w", [{1 + 2}]).

参考链接

https://www.learnfk.com/erlang/erlang-preprocessors.html

标签:无涯,module,start,处理器,erl,Erlang,预处理,helloLearnfk
From: https://blog.51cto.com/u_14033984/8668567

相关文章

  • 无涯教程-Erlang - 异常处理
    任何编程语言都需要异常处理来处理运行时错误,以便可以维护应用程序的正常流程。通常,当Erlang中发生异常或错误时,将显示以下消息。{"initterminatingindo_boot",{undef,[{helloLearnfk,start,[],[]},{init,start_it,1,[]},{init,start_em,1,[]}]}}故障转储将被写入-erl_......
  • 无涯教程-Erlang - Records(记录)
    Erlang具有创建records记录函数,这些records记录由字段组成,例如,您可以定义一个personal records,其中包含2个字段,一个是id,另一个是name字段。然后,您可以在Erlang中创建此records记录的各种实例,以定义具有不同名称和ID的多个personal。创建记录使用record标识符创建,在此record......
  • 无涯教程-Erlang - Maps(映射)
    Maps中的每个键-值(key-value)关联称为关联对,该对中的键和值部分称为元素,关联对的数量被称为Map的大小。我们定义了具有2个Maps的MapM1,map_size是用Erlang定义的内置函数,可用于查看Map的大小。-module(helloLearnfk).-export([start/0]).start()->M1=#{name=>john......
  • 无涯教程-Erlang - 文件I/O
    使用I/O时,Erlang提供了许多方法。它具有更简单的类,可为文件提供以下函数-读取文件写入文件查看文件是文件还是目录让我们探讨一下Erlang提供的一些文件操作,出于这些示例的目的,我们将假设有一个名为NewFile.txt的文件,其中包含以下文本行Example1Example2Example3在以下......
  • 无涯教程-Erlang - Strings(字符串)
    通过将字符串括在引号中,可以在Erlang中构造一个字符串文字,需要使用双引号(如"HelloLearnfk")构造Erlang中的字符串。-module(helloLearnfk).-export([start/0]).start()->Str1="Thisisastring",io:fwrite("~p~n",[Str1]).上面程序的输出将是-“Thisisa......
  • 无涯教程-Erlang - Lists(列表)
    列表是用于存储数据项集合的结构,在Erlang中,列表是通过将值括在方括号中来创建的。-module(helloLearnfk).-export([start/0]).start()->Lst1=[1,2,3],io:fwrite("~w~n",[Lst1]).上面示例的输出将是-[123]现在让我们讨论可用于列表的各种方法。Sr.No方法......
  • 无涯教程-Erlang - Numbers(数字)
    在Erlang中,有两种数字类型:整数(integers)和浮点数(floats)。整数示例:-module(helloLearnfk).-export([start/0]).start()->io:fwrite("~w",[1+1]).上面程序的输出如下:2浮点数示例:-module(helloLearnfk).-export([start/0]).start()->io:fwrite("~......
  • 无涯教程-Erlang - 递归
    递归是Erlang的重要组成部分,首先,让我们看看如何通过实现阶乘程序来实现简单的递归。-module(helloLearnfk).-export([fac/1,start/0]).fac(N)whenN==0->1;fac(N)whenN>0->N*fac(N-1).start()->X=fac(4),io:fwrite("~w",[X]).关于上述程序,需要......
  • 无涯教程-Erlang - 运算符
    Erlang具有以下类型的运算符-算术运算符关系运算符逻辑运算符按位运算符算术运算符Erlang语言支持普通的算术运算符,就像任何一种语言一样,以下是Erlang中可用的算术运算符。运算符描述示例+加1+2=3-减1-2=-1*乘2*2=4/除2/2=1rem余数3rem2=1div......
  • 无涯教程-Erlang - 变量声明
    在Erlang中,所有变量都必须以大写字母开头,要注意的一件事是变量是不可变的,这意味着要更改变量的值,需要将其销毁并重新创建。变量声明定义变量的一般语法如下-var-name=var-valuevar-name-这是变量的名称。var-value-这是绑定到变量的值。-module(helloLearnfk).-e......