码迷,mamicode.com
首页 > 编程语言 > 详细

【一】通过四个版本的 Hello Word 初识D语言

时间:2015-04-17 09:31:58      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

import std.stdio;

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

 

版本二:使用C标准库

extern(C) int puts(const char *);

void main()
{
    puts("Hello World\n".ptr);
}

 

版本三:使用系统调用

extern(C) int write(int fildes, const void *buf, size_t nbyte);
 
void main()
{
    write(1, "hello world\n".ptr, 12);
}

 

版本四:被C调用

D 代码(hello.d)

import std.stdio;

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

C代码(hello.c)

void hello();

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

编译方法:

$ 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,但这只是冰山一角,还有很多高级特性这里没有体现出来,在后续的文章中会详细介绍

 

【一】通过四个版本的 Hello Word 初识D语言

标签:

原文地址:http://www.cnblogs.com/quetzal/p/4433926.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!