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

相关推荐
Mr.Daozhi2 分钟前
跨境电商选品完整流水线:Google Trends筛词+Meta广告分析,CLI工具设计实战
开发语言·爬虫·python·跨境电商·工具链·选品
多彩电脑3 分钟前
Swift里字符串的索引
开发语言·swift
SoftLipaRZC3 分钟前
C语言预处理详解:从宏定义到条件编译
c语言·开发语言
会周易的程序员3 分钟前
C++ 对象池深度解析:架构设计与实现原理
开发语言·c++·物联网·iot·aiot
L_09078 分钟前
【C++】智能指针
开发语言·c++·智能指针
程序猿乐锅9 分钟前
【苍穹外卖|Day02】后台接口自测闭环:Token、DTO 与 yml 配置
java·开发语言
冰暮流星17 分钟前
javascript之对象的建立-使用Object
开发语言·javascript·ecmascript
qq_25183645726 分钟前
基于java 税务管理系统设计与实现
java·开发语言
LuminousCPP28 分钟前
从零开始学 C++|系列开篇:从 C 到 C++ 的衔接之路
开发语言·c++·笔记
超梦dasgg30 分钟前
Java 生产环境分布式定时任务全解(实战落地版)
java·开发语言·分布式