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

相关推荐
@PHARAOH13 分钟前
HOW - Go 开发入门(二)
开发语言·后端·golang
BUG?不,是彩蛋!16 分钟前
从零到一掌握 K 线与技术指标:Java 实战教程 | MA, RSI, MACD 全解析
java·开发语言·spring boot·量化投资
冰暮流星23 分钟前
javascript之变量作用域
开发语言·前端·javascript
biter down24 分钟前
C++ 设计不可被继承的类
java·开发语言·c++
放下华子我只抽RuiKe525 分钟前
机器学习终章:集成学习的巅峰与全流程实战复盘
开发语言·人工智能·python·机器学习·数据挖掘·机器人·集成学习
摇滚侠26 分钟前
Java 项目教程《尚庭公寓-下》,单体架构项目,从开发到部署
java·开发语言·架构
浅念-27 分钟前
C++ 异常
开发语言·数据结构·数据库·c++·经验分享·笔记·学习
lxh011328 分钟前
嵌套数组生成器题解
开发语言·javascript·ecmascript
2401_8845632428 分钟前
高性能日志库C++实现
开发语言·c++·算法
Dxy123931021632 分钟前
DrissionPage使用js点击:突破常规交互限制的“隐形手”
开发语言·javascript·交互