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的无缝交互,内存安全方面的较小的学习曲线,真的让人很期待。

相关推荐
裤裤兔14 小时前
Python打印输出换行
开发语言·python
一水鉴天14 小时前
整体设计 定稿 之24+ dashboard.html 增加三层次动态记录体系仪表盘 之2 程序 (Q208 之2)
开发语言·前端·javascript
啦哈拉哈14 小时前
【Python】知识点零碎学习3
开发语言·python·学习
mengzhi啊14 小时前
Qt自绘制动态字体,模糊的,毛茸茸的fuzzy。
开发语言·qt
识途老码14 小时前
python装饰器
开发语言·python
JIngJaneIL14 小时前
基于Java饮食营养管理信息平台系统(源码+数据库+文档)
java·开发语言·数据库·vue.js·spring boot
fresh hacker14 小时前
【Python数据分析】速通NumPy
开发语言·python·数据挖掘·数据分析·numpy
长安第一美人14 小时前
整车控制器标定软件介绍 || 汽车标定协议CPP
开发语言·qt
宠..14 小时前
获取输入内容
开发语言·c++·qt
郝学胜-神的一滴14 小时前
Linux系统调用中断机制深度解析
linux·运维·服务器·开发语言·c++·程序人生