当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/299726.html

相关文章:

  • 如何用 ChatGPT 做项目管理?
  • DS:树及二叉树的相关概念
  • MATLAB | 情人节画个花瓣venn图?
  • [日常使用] Shell常用命令
  • QT+OSG/osgEarth编译之八十七:osgdb_p3d+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_p3d)
  • 寒假 day13
  • 探索微信小程序的奇妙世界:从入门到进阶
  • 容器库(4)-std::forward_list
  • Netty Review - 服务端channel注册流程源码解析
  • 冒泡排序平均需要跑多少趟:拉马努金Q函数初探
  • Shell 学习笔记(三)-shell变量
  • 新冠:2022和2024两次新冠感染的对比
  • 笔记:《NCT全国青少年编程能力等级测试教程Python语言编程二级》
  • 顶级思维方式——认知篇五(思想的觉醒)
  • 面试技术栈 —— 2024网易雷火暑期实习真题
  • 【小赛1】蓝桥杯双周赛第5场(小白)思路回顾
  • docker (二)-yum二进制部署
  • 【深度学习】S2 数学基础 P2 线性代数(下)
  • 【软考高级信息系统项目管理师--考试内容大纲篇】
  • C语言——枚举类型
  • linux---内存管理
  • v-model原理
  • 波奇学Linux:文件系统
  • 项目访问量激增该如何应对
  • 【Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)】
  • 幻兽帕鲁官方更新了,服务器端怎么更新?
  • axios-retry 响应异常
  • Vue项目创建和nodejs使用
  • 【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】
  • 【开源】JAVA+Vue.js实现天然气工程运维系统