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

相关推荐
星栈1 分钟前
Makepad、egui、Dioxus、Tauri:Rust GUI 到底怎么选
前端·rust
曾几何时`8 分钟前
Go(四)Channel
开发语言·后端·golang
未若君雅裁15 分钟前
Java 线程基础:进程、线程、并发并行、创建方式与生命周期
java·开发语言
sugar__salt18 分钟前
JS正则表达式与字符串高阶实战精讲
开发语言·javascript·正则表达式
QT-Neal20 分钟前
C/C++ 程序段的概念与分类
c语言·c++
AI浩22 分钟前
梯度累积与 Micro-Batch 设计分层式精讲:有效批次、显存边界与分布式同步
开发语言·分布式·batch
未若君雅裁24 分钟前
死锁产生条件与诊断:jps、jstack、VisualVM
java·开发语言
再玩一会儿看代码24 分钟前
Java抽象类和接口区别_场景理解
java·开发语言·经验分享·笔记·python
于先生吖32 分钟前
Java消息队列优化抢单逻辑,同城搬家拉货多场景业务数据库架构设计
java·开发语言·数据库架构
半个烧饼不加肉32 分钟前
JS 底层探究--执行上下文
开发语言·前端·javascript