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

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

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

0441cf9391431a5e270286bb3831c18d.png


此版本的开发周期历时 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,其值等于编码点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/312413.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【实战 Ids4】║ 给授权服务器加个锁——HTTPS配置

在上篇文章《【实战 Ids4】║客户端、服务端、授权中心全线打通!》中,我们正式的将三站打通,发布过后,有小伙伴反馈,可能Nginx对配置HTTPS安全协议有点儿问题,我也就半夜趁着没人打扰,疯狂的研究…

快速幂 a*b%c

2020.12.30开始学习AcWing算法《算法竞赛进阶指南》&#xff1b; 在CSDN上传博客方便复习。 //wecccccccc //2020.12.30 #include <iostream> using namespace std; typedef long long int ll;ll fast_power(ll a, ll b, ll c) {ll ans 1;a % c;//防止一开始输入的值过…

thinkphp 助手函数url不生成https_如何用ThinkPHP框架写一个快递查询接口

ThinkPHP是php程序员们经常使用的框架之一&#xff0c;运用框架来开发网站无疑减轻了我们代码量&#xff0c;加快了我们的开发速度&#xff0c;框架底层封装的方法和函数使用起来简直不能太爽。今天给大家总结一个小案例&#xff0c;如何实现一个快递查询的接口。所谓接口&…

64位整数乘法

2020.12.30开始学习AcWing算法《算法竞赛进阶指南》&#xff1b; 上传博客方便复习。 //Wecccccccc //2020.12.30 #include <iostream> using namespace std; typedef unsigned long long int ull;int main() {ull a, b, c;cin >> a >> b >> c;ull ans…

分布式锁的实现与探索

源宝导读&#xff1a;大型的信息化系统对数据准确性的要求很高&#xff0c;所以经常会使用事务、锁、队列等技术&#xff0c;保障高并发下的数据一致性问题。本文将讨论在分布式部署模式下&#xff0c;如何利用锁机制保证业务数据准确的技术探索与实践。一、背景分布式场景下的…

matlab 角度转四元数_基于Matlab的机械臂路径规划

什么是 trajectory(路径)规划中文路径在英语中可能有两种翻译&#xff1a;1. path2. trajectory首先告诉大家&#xff0c;我们所说的“路径”是后者——trajectory。我们看一下这两种“路径”在机械臂的世界里有什么区别。设想机械臂的 end-effector 要从 A 点运动到 B 点&…

ASP.NET Core 中间件的几种实现方式

前言ASP.NET Core 中 HTTP 管道使用中间件组合处理的方式,换句人话来说,对于写代码的人而言,一切皆中间件.业务逻辑/数据访问/等等一切都需要以中间件的方式来呈现.那么我们必须学会如何实现自定义中间件 这里划重点,必考这里我们介绍下中间件的几种实现方式...匿名函数通常新建…

cookies默认过期时间_「图」Chrome Canary新版已启动“增强版cookies控制”预览测试...

近日谷歌承诺将于今年晚些时候在Chrome浏览器启动“增强版cookies控制”的预览测试。在今年的I/O开发者大会上&#xff0c;谷歌宣布携手Mozilla等开发者耗时3年多时间制定了名为“same-site cookies”的IETF 标准&#xff0c;而该功能就是建立在same-site cookies的基础上&…

【原创】StackOverflow 20万关注的问题:如何实现异步Task超时的处理?

前文传送门 dotNET开发系列收藏&#xff01;推荐12个超实用的Visual Studio插件程序员&#xff1a;这10种糟糕的程序命名&#xff0c;你遇到过几个&#xff1f;使用Vistual Studio N年&#xff0c;推荐2个异常捕获的技巧面试官&#xff1a;你连RESTful都不知道我怎么敢要你&…

C# WPF 表单更改提示

微信公众号&#xff1a;Dotnet9&#xff0c;网站&#xff1a;Dotnet9&#xff0c;问题或建议&#xff0c;请网站留言&#xff1b; 如果您觉得Dotnet9对您有帮助&#xff0c;欢迎赞赏Dotnet9.com内容目录实现效果业务场景编码实现本文参考源码下载1.实现效果未做修改的表单展示 …

XRPC接口双向调用

一般远程接口调用的服务都是基于客户端主动调用服务端&#xff0c;由服务端来提供相关的接口服务&#xff1b;在新版本的XRPC中引入了一个新的功能&#xff0c;即接口双向通讯&#xff0c;组件提供服务创建客户会话的接口代理并调用客户提供的接口服务。接下来介绍如何通过XRPC…

电机控制pid_微电机控制如此简单,揭秘微电机调速的控制,PID控制之双环调速...

​​在微型电机应用中&#xff0c;由于各种应用产品的不同会用到不同的调速方式&#xff0c;在调速中可能会遇到各种不同的问题&#xff0c;下面天孚电机对最近客户对微电机PID调速遇到的双环控制问题来讲一讲。智能小车TFMOTOR-N30减速电机​客户是做智能小车的采用的是tfn30微…

简单的01背包和完全背包

2020.12.30开始学习AcWing算法《算法竞赛进阶指南》&#xff1b; 上传博客方便复习。 01背包&#xff08;每种物品只能使用一次&#xff09;&#xff1a; //Wecccccccc //2020.12.31 #include <iostream> using namespace std; int n,m,v[1010],w[1010],dp[1010]; int…

图片上传组件_配置Django-TinyMCE组件 实现上传图片功能

Django自带的Admin后台&#xff0c;好用&#xff0c;TinyMCE作为富文本编辑器&#xff0c;也蛮好用的&#xff0c;这两者结合起来在做博客的时候很方便&#xff08;当然博客可能更适合用Markdown来写&#xff09;&#xff0c;但是Django-TinyMCE这个组件默认没有图片上传功能的…

.NET Core 3.1之深入源码理解HealthCheck(二)

写在前面前文讨论了HealthCheck的理论部分&#xff0c;本文将讨论有关HealthCheck的应用内容。可以监视内存、磁盘和其他物理服务器资源的使用情况来了解是否处于正常状态。运行状况检查可以测试应用的依赖项&#xff08;如数据库和外部服务终结点&#xff09;以确认是否可用和…

多重背包问题以及二进制优化

2020.12.30开始学习AcWing算法《算法竞赛进阶指南》&#xff1b; 上传博客方便复习。 多重背包问题&#xff08;N< 100): //Wecccccccc //2020.12.31 #include <iostream> using namespace std; int n,m,dp[110]; int main() {cin>>n>>m;for(int i0;i&…

UnitTest in .NET(Part 2)

Photo &#xff1a;Unit Test in Visual Studio文 | Edison Zhou上一篇我们学习基本的单元测试基础知识和入门实例。但是&#xff0c;如果我们要测试的方法依赖于一个外部资源&#xff0c;如文件系统、数据库、Web服务或者其他难以控制的东西&#xff0c;那又该如何编写测试呢&…

二维费用的背包问题

2020.12.30开始学习AcWing算法《算法竞赛进阶指南》&#xff1b; 上传博客方便复习。 //Wecccccccc //2020.12.31 #include <iostream> using namespace std; int n, v, m, dp[120][120];int main() {cin >> n >> v >> m;for (int i 0; i < n; i) …

UnitTest in .NET(Part 1)

Photo &#xff1a;Unit Test in Visual Studio文 | Edison Zhou2015年看了Roy Osherove的《单元测试的艺术》一书&#xff0c;颇有收获。因此&#xff0c;我在当时就将我的学习笔记过程记录了下来&#xff0c;并分为四个部分分享成文&#xff0c;与各位Share。本篇作为入门&am…

找出一个字符串中出现次数最多的字_Day34:第一个只出现一次的字符

剑指Offer_编程题——第一个只出现一次的字符题目描述&#xff1a;在一个字符串(0<字符串长度<10000&#xff0c;全部由字母组成)中找到第一个只出现一次的字符&#xff0c;并返回它的位置&#xff0c;如果没有则返回-1&#xff0c;需要区分大小写。(从0开始计数)。具体要…