Zig 0.6.0 已发布,这是一门通用编程语言,专为稳定性、可维护性和性能而设计,追求替代 C 语言在系统编程上的最佳地位。Zig 具有以下值得关注的特性:

  • 手动管理内存
  • 与 C 语言竞争而非依赖它,Zig 标准库不依赖于 libc
  • 轻量而简单,专注于调试应用而不是调试编程语言的知识
  • 新的错误处理方法,与编写良好的 C 语言错误处理类似,但减少了很多冗余
  • 调试模式下优化了快速编译时间,并在不确定行为发生时使用堆栈跟踪崩溃
  • ReleaseFast 模式和 ReleaseSafe 模式
  • 泛型数据结构和函数
  • 通过协程实现并发
  • 导入 .h 头文件并直接使用 C 语言的类型、变量和函数
  • 导出要依赖 C 语言代码的函数,变量和类型,自动生成 .h 头文件
  • 可选类型而非空指针
  • 交叉编译是主要用例

此版本的开发周期历时 6 个月,有 122 名不同贡献者提交了 2527 次 commit。
Zig 0.6.0 保持与 LLVM 一致的更新节奏,已将 LLVM 升级到最新版 LLVM 10,并且不再兼容 LLVM 9。新的 LLVM 版本主要是修复 Bug,尤其是对 ARM 支持、MIPS 支持、RISC-V 支持等方面的错误修复。
这也是第一个将 Zig 的所有补丁合并到上游的 LLD 版本。因此,Zig 的源码库中不再包含 LLD 源码的 fork,也就意味着源码的 tarball zig-0.6.0.tar.xz 比 zig-0.5.0.tar.xz 小了 0.5MiB,因为删除 LLD 源码比这个发布周期中所有其他的改动加起来还节省了更多的空间。请注意,新的 Bootstrap Tarball 捆绑了 Zig 编译器的所有依赖项,其中包括 LLVM、LLD 和 Clang。
语言特性层面的主要更新包括:

  • 类型强制语法(Type Coercion Syntax):类型强制(以前称为"implicit casting")现在通过@as内置的方式来执行,而不是通过调用一个类型作为函数来执行。
  • Sentinel-Terminated 指针:通过这次修改,Zig 语言既增加了一项特性,同时也删除了一项特性。不再有像c"hello"这样的C语言字符串字面量。取而代之的是所有字符串字面量的类型从 []const u8 转变为 *const [N:0]u8,其中 N 是字符串字面量的字节数。
  • 移除 Array-to-Reference 类型强制转换
  • 数值比较:无论类型组合如何,所有数值都可进行比较。例如,小的有符号整数可以和大的无符号整数进行比较,而浮点数也可以和整数进行比较。
  • 匿名的结构体字面量(Anonymous Struct Literals):Zig 现在支持省略结构类型的字面量。
  • 增加 Tuples,删除 Var Args:与匿名的枚举字面量和匿名的结构体字面量类似,类型也可以从数组字面量中省略。
  • SIMD:对 SIMD 的支持还远未完成,但已经取得重大进展。
  • 删除 @newStackCall 方法:@newStackCall 最初用于研究安全递归,但现在安全递归计划通过 Async 函数实现。
  • 非穷举式枚举:可以通过添加尾部的'_'字段来创建一个非穷举式枚举。它必须指定一个整数标记类型,并且不能消耗每个枚举值。
  • Unicode 字符字面量:实现此功能是因为 Zig 被定义为使用 UTF-8 进行源码编码。一个 unicode 字符字面量是一个 comptime_int,其值等于编码点。

c语言枚举类型例题_[开源资讯]Zig 0.6.0 发布,想要挑战 C 语言相关推荐

  1. c语言枚举法礼泡声次数,C语言枚举类型举例

    C语言枚举类型举例 注:以下全部代码的执行环境为VC++ 6.0 宏和枚举的区别 宏和枚举之间的差别主要在作用的时期和存储的形式不同,宏是在预处理的阶段进行替换工作的,它替换代码段的文本,程序运行的过 ...

  2. c语言 枚举类型 uint32_浅谈C语言枚举类型 | 附自创用法分享

    经济学家说过,路边是不会有100元的:但如果有,你还是要捡起来. 同理,在貌似万物免费的网络时代,你是很难找到有针对性的好资料:但是如果有,希望你能认真学习吸收. 比如笔者今天写的这一篇 一 今天这篇 ...

  3. C语言枚举类型(Enum)

    C语言枚举类型(Enum) 在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六 ...

  4. c语言枚举类型编程,浅析C语言枚举类型

    在学习C语言的结构体过程中,我们接触到比较重要的内容要数枚举类型这一环了.那么到底什么是C语言中的枚举类型呢?它在我们编写程序时又起着什么样的作用呢?下面课课家小编就为大家简单介绍C语言中的枚举类型和 ...

  5. C语言枚举类型通常用来干嘛,C语言学习:枚举类型是什么?

    前言 枚举(enum)类型是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把 ...

  6. c语言怎么用枚举类型的字符串,c语言枚举类型的用法

    枚举类型就相当于助记符,帮助程序员记忆的.比如现在要画一张地图,用到红黄蓝绿四种颜色.为了存储方便,我们规定0=红,1=黄,2=蓝,3=绿.但是当编程到某一阶段时,程序员可能忘记了哪个数字具体对应哪种 ...

  7. c语言枚举类型有什么作用,关于C语言枚举类型不得不说的故事

    经济学家说过,路边是不会有100元的,但是如果有,你还是要捡起来.本文引用地址:http://www.eepw.com.cn/article/202005/413512.htm 同理,在貌似万物免费的 ...

  8. c语言枚举类型enum用法参数,C语言枚举类型(Enum)

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

  9. c语言 枚举类型 uint32_最全面C语言数据基本数据类型解析

    前言 上一章节主要是详细介绍了C语言system函数实现一个自动关机程序,不清楚的可以回顾一下哦.本章节主要针对于C语言基本数据类型解析一个详细介绍. C语言基本数据类型是什么? c编程语言中的数据类 ...

最新文章

  1. RE:大家说说开发的时候类名和文件名一般是怎么规范的?
  2. ccs船级社认证费用多少_亚马逊UL507认证是什么?办理费用是多少?
  3. 前端实现连连看小游戏(1)
  4. idea ---- 快捷键
  5. A1113 | Integer Set Partition (25)
  6. android studio for android learning (二十八) android基础知识
  7. JIT编译对比AOT编译(附图片)
  8. php sns 源码,ThinkSNS V2.3源码下载(SNS系统)
  9. 一个像素的旅行,卷积网络可视化项目火了:点点鼠标就能看懂的扫盲神器
  10. 在word里面插入对象显示不全怎么办
  11. php聚合查询,php elasticsearch 聚合查询(Aggregation)
  12. 找出相似的图片--C#
  13. 【中塘镇】助力儿童,健康成长---创意超轻黏土手工制作主题活动
  14. BP神经网络的数学表达式
  15. 函数指针实现回调函数
  16. 适配 iphone 微信h5页面
  17. 2020年书法落款_学书法的请注意,落款不要写“庚子年”
  18. Oracle各个服务介绍
  19. 51单片机实现矩阵键盘密码锁,数码管显示
  20. android 摄像头 蓝条,微信小程序拍照部分Android机出现蓝色精灵人现象

热门文章

  1. php 之 Final 关键字
  2. 你发现了吗?数学还能这么美
  3. “高仿版拼多多”宣告破产!曾一年收割1.3亿用户,如今自救失败负债16亿
  4. 与殿堂级大师隔空对话——一张纸是怎么限制了我们的想象力
  5. 拼多多出现大Bug:100无门槛券随便领,一晚损失200亿
  6. Java标签移动_如何使用基于鼠标单击的标签移动特定游戏对象?
  7. php 输入值,php-HTML输入值更改
  8. 独占设备的分配与回收_灵魂拷问:Java对象的内存分配过程是如何保证线程安全的?...
  9. 2020年python2停止更新_Python核心团队计划2020年停止支持Python2,NumPy宣布停止支持计划表...
  10. 自定义依赖注解无效_最详细的自定义Spring Boot Starter开发教程