Rust 自引用结构

今天和朋友交流的时候遇到了自引用问题,之前就在看 Rust Bible 的时候看到过,但是一直没用 Rust 写过什么数据结构,所以没有使用这个的机会,所以今天就来尝试一...

2023 Feb 23 · 1 min · vaaandark

Lua 中的三目运算

在看 skywind3000 大神写的 z.lua 时发现了神秘写法: os.argv = arg ~= nil and arg or {} os.path.sep = windows and '\\' or '/' 不需要怎么思考就能知道这个是三目运算。但是在我认知中,Lua 是不支持三目运...

2023 Feb 09 · 2 min · vaaandark

用 Rust 重写星际译王

我经常有在终端查单词的需求,之前使用的是自己写的网络爬虫,原理是构造网址 “

2023 Jan 25 · 1 min · vaaandark

内联汇编

高中第一次看到在 C 语言中嵌入汇编语言时,我就觉得它非常好玩,到大学刚开学的时候,我甚至有使用它的需求,可惜直到现在我才抽出时间开始学习它。 分...

2023 Jan 02 · 6 min · vaaandark

ARM与80X86的异同

今天初步认识了 ARM 汇编。 CPU 内寄存器 aarch64 有 31 个 64 位通用寄存器,它们的名字是为 xn(n 为 0-30 的整数),不像 80X86 一样暗示了它们的用途。 类似 rax 和 eax 的关系,它...

2022 Nov 08 · 2 min · vaaandark

稍微深入VLA

最近在学习汇编语言,和朋友聊天时聊到了 C 语言中的变长数组,想知道在汇编后是什么样子的。 变长数组(Variable-length array) 可变长数组是...

2022 Oct 20 · 1 min · vaaandark

80X86汇编语言学习

汇编语言学习笔记 预备知识 Intel 机器 微型计算机的构成 80X86 微处理器的基本结构 数据寄存器组 段寄存器组 80X86 的三种工作方式 实地址模式 保护模式 虚拟 8086 方式(V86...

2022 Sep 27 · 3 min · vaaandark

C语言异常处理

C 语言没有原生支持异常处理,但是可以使用setjmp和longjmp函数实现类似try ... except的功能。 本文主要参考: C Interfaces and Implementation Implementing exceptions in C setjmp.h...

2022 May 03 · 4 min · vaaandark

Rust闭包

Rust 支持函数式编程,因此高阶函数、闭包等特性都不可或缺。 本文主要参考了 Rust Course 和 Rust 标准库文档。 什么是闭包 闭包是在支持头等函数的编程语言中实现词法绑...

2022 Apr 26 · 4 min · vaaandark

Rust迭代器

最近一直在学习 Rust 语言,深感它的学习曲线很陡峭,因此会写几篇博客记录一下学习进度。 本文主要参考了 Rust Course 和 Rust 标准库文档。 什么是迭代器 迭代器(ite...

2022 Apr 25 · 4 min · vaaandark