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

相关推荐
小雅痞23 分钟前
[Java][Leetcode hard] 42. 接雨水
java·开发语言·leetcode
We་ct26 分钟前
AI辅助开发术语体系深度剖析
开发语言·前端·人工智能·ai·ai编程
t***54428 分钟前
Dev-C++中哪些选项可以设置
开发语言·c++
輕華36 分钟前
PyQt5入门实战:安装、QtDesigner设计与PyUIC转换完整指南
开发语言·qt
幽灵诶1 小时前
理解指针2
c语言
麻辣璐璐1 小时前
EditText属性运用之适配RTL语言和LTR语言的输入习惯
android·xml·java·开发语言·安卓
2301_803554521 小时前
C++ 并发核心:std::promise、std::future、std::async 超详细全解
开发语言·c++
俺不要写代码1 小时前
线程启动、结束,创建线程多法、join,detach,线程的移动语义
服务器·开发语言·网络·c++
雾岛听蓝1 小时前
Qt Widget控件属性详解
开发语言·经验分享·笔记·qt
好家伙VCC2 小时前
# 发散创新:用 Rust实现高性能物理引擎的底层架构设计与实战在游戏开发、虚拟仿真和机器人控
java·开发语言·python·rust·机器人