erlang使用c语言开发的吗,Erlang与C语言的头文件对比

Erlang与C语言的头文件对比

Erlang中头文件的定义:

record.hrl:

%% this is a record.hrl (header) file.

-ifndef(record).

-define(record,true).

-record(person, {name,

type=industrial,

hobbies,

details=[]}).

-endif.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

test.erl:

%%

%% Exported Functions

%%

-include("record.hrl").

-export([getName/1]).

%%

%% API Functions

%%

getName(Name)->

Person= #person{name=Name, hobbies=["Crushing people","petting cats"]},

Person#person.name.

=================================================================

c语言中头文件:

person.h

#ifndef PERSON_H

#define PERSON_H

typedef struct Person{

char name[20];

char type[20];

char hobbies[20];

char details[20];

} Person;

#endif

###############################################################################

test.c

#include

#include "person.h"

int main(void)

{

char c;

Person p = {"li", "type", "hobbies", "detail"};

printf("%s",p.name);

scanf("%c", &c);

}

上面的例子是在头文件定义了一个记录或者结构体,然后在源程序中引用了这个记录或者结构体。

为了看懂上面的例子我做几点对比说明:

预处理对比

C

Erlang

包含

#include #include""

不能是路径

-include(File) File可以是绝对和相对路径

#define 分为有参和无参

引用时,直接引用

-define(Const, Replacement), -define(Func(Var1, VarN), Replacement),引用时用?Const或?Func(Var2,  VarN)

条件编译

#ifdef #else #endif

-ifdef(Macro) -ifndef(Macro) -else -endif.

看出Erlang和C语言的预处理还是很相似的,最大的不同在于#和-,其它在用法上有些小的区别,多注意下就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值