《玩转D语言系列》一、通过四个版本的 Hello Word 初识D语言

  对于D语言,相信很多朋友还没听说过,因为它还不够流行,跟出自名门的一些语言比起来也没有名气,不过这并不影响我对它的偏爱,我就是这样的一种人,我喜欢的女孩子一定是知己型,而不会因为她外表,出身,学历,工作等产生偏见,如果您和我一样相信您也会喜欢上D语言,作为一个工作上目前几乎用不到的语言还是很值得学习,就像是跟你结婚的人未必是你最喜欢的人(做人留一线,见后好 xx 嘛,\(^o^)/ )

好了,进入正题,本文将使用四个版本的Hello Word程序向还不了解D语言,有兴趣学习新语言的朋友们展示D语言的基本外观和基本的系统编程能力,以做抛砖引玉

版本一:使用D标准库——phobos

import std.stdio;

void main()
{
    writeln("Hello World");
}

 

版本二:使用C标准库

import core.stdc.stdio;

void main()
{
    puts("hello world");
}

  

版本三:使用系统调用

import core.sys.posix.unistd;

void main()
{
    write(STDOUT_FILENO, "hello world\n".ptr, 12);
}

 

版本四:被C调用

D 代码(hello.d)

import std.stdio;

extern(C) void hello()
{
    writeln("Hello World");
}

C代码(hello.c)

void hello();
void rt_init();
void rt_term();

int main()
{
    rt_init(); // 初始化D runtime以支持D中的高级特性,如果没有用到可以省略
    hello();
    // ...
    rt_term(); // 释放 D runtime 资源,需与rt_init 配对
    return 0;
}

 

此被C调用程序的编译方法:

$ dmd -c hello.d

$ gcc -o hello hello.o hello.c -lphobos2

$ ./hello

Hello World

D与C是二进制兼容的,但并不兼容源码,所以编译时要使用二进制文件,另外不要忘记链接 libphobos2 这个库,如果你懂C那不需要我啰嗦原因了

 

这四个小程序初步展示了D语言的外观,以及每一个系统编程语言必需要做到的与C的交互性,在这点上C++可以无缝的实现与C的互调,D相比C++多了两个函数调用,在实现项目中,多了两个函数调用的编码成本几乎可以忽略,相比Go的方式和Rust的FFI要舒服的多,看上去也很自然

有的朋友可以注意到了,D代码跟C++很像,没错,它非常的C like,但这只是冰山一角,还有很多高级特性这里没有体现出来,在后续的文章中会详细介绍

 

转载于:https://www.cnblogs.com/quetzal/p/4433926.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值