博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《玩转D语言系列》一、通过四个版本的 Hello Word 初识D语言
阅读量:5158 次
发布时间:2019-06-13

本文共 1247 字,大约阅读时间需要 4 分钟。

  对于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

你可能感兴趣的文章
【UOJ#77】A+B Problem
查看>>
【LuoguP5328】[ZJOI2019]浙江省选
查看>>
MeteoInfoLab脚本示例:计算垂直螺旋度
查看>>
Visual Studio的Debugger Visualizers
查看>>
《大教堂与集市》读后感
查看>>
[RabbitMQ]Windows环境下rabbitmqclt(Command Line Tools)出现Erlang distribution failed错误的解决方法...
查看>>
创业这三年@各种奇遇
查看>>
正确配置调试world wind on vs2008
查看>>
纯css实现3D动画
查看>>
几种按键消抖方案的verilog描述
查看>>
四则运算 Day2
查看>>
使用SpringBoot生成项目
查看>>
C++ __super关键词用法
查看>>
FTP上传及下载
查看>>
作业5 四则运算 测试与封装 5.1
查看>>
实验7
查看>>
双系统更改启动顺序
查看>>
用参数较少的函数替换参数较多的函数
查看>>
【转】函数中的形参问题(指针形参、引用形参、二重指针作为形参)
查看>>
location对象查询字符串参数
查看>>