Zig、C、Rust的Pk1

Zig、C、Rust的Pk1

github.com上看到"A basic comparitive analysis of C, C++, Rust, and Zig.":https://github.com/CoalNova/BasicCompare/tree/main

里边的代码是9个月之前的,用现在的zig 0.11.0 及0.12-dev都无法通过编译(具体为:zig-windows-x86_64-0.12.0-dev.2543+9eda6ccef),现把C、Zig、Rust代码down下来,做了简单修改,编译(Release)执行后,果然体验到了Zig的与众不同。(此处声明:原代码版权属于https://github.com/CoalNova)

代码编译方式

C: zig cc c_test.c -O2 -o c_test.exe

Rust:Cargo build --release

Zig:zig build-exe zig_test.zig -O ReleaseFast

代码的变化

C、Rust的基本没变。

Zig的变化(具体的编译器会提示):

1、个别变量由var 改为const.

2、注释部分改为: //var args = std.process.Args();

var args = try std.process.argsWithAllocator(allocator);

defer args.deinit();

3、几处 @intCast(u32,i) 变为@intCast(i)

@intToFloat改为@floatFromInt ,减少参数,并且单独声明了const量。

编译运行结果图

Rust

C

Zig

Zig属于水平式内存安全、编译型语言,目前仍在变动,但对C的无缝交互,内存安全方面的较小的学习曲线,真的让人很期待。

相关推荐
可乐鸡翅yeah_8 分钟前
hls.js 多实例并发踩坑,多视频页面播放器内存与冲突问题解决
开发语言·前端·javascript·音视频·hls·m3u8·m3u8在线播放
俊昭喜喜里9 分钟前
c#中的构造函数
开发语言·数据库·c#
hahaha601621 分钟前
HLS高层次综合设计--axi之burst纠偏
开发语言·算法·fpga开发·c#
SunnyDays101128 分钟前
如何使用 Python 给 PDF 添加附件:文档附件与附件注释
开发语言·python·pdf
xx~t33 分钟前
嵌入式——Linux软件编程——数据库
linux·c语言·数据库·oracle·sqlite
学逆向的43 分钟前
扩展PE头属性说明
开发语言·网络安全·pe
水饺编程44 分钟前
第5章,[Win32 章节] :圆角矩形教学插图绘制程序
c语言·c++·windows·visual studio
是隼人1 小时前
buuctf-pwn PWN4(双引号的转义缺陷)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
秋名RG1 小时前
Java 基础语法
java·开发语言
码行山野赴时序归途1 小时前
C 语言文件操作完全指南:从打开到关闭
c语言·开发语言