最新文章

开源了-rust快速开发工具集

rust快速开发工具集,包括: axum web开发 sqlx 数据库访问(pg, mysql, sqlite) date 日期 file_util文件工具 json log4rs 日志 pinyin 拼音 dll版本tika 任意文件内容提取 jwt redis rocketmq

docker安装rocketmq

Name Server搭建 创建挂载的目录 创建一个新的网络连接

java使用信号量控制虚线程任务的并发数

/* 提交一个有并发控制的任务 通过 semaphore 信号量控制并发 * * @param taskName 任务名 相同任务名 做并发控制 * @param concurrent 并发数 * @param task * @return */

rust语言win10下编译兼容win7的可执行程序

笔者的一次经历,rust程序在win10上编译好了也可以运行,但拷贝到win7上就运行不了,多方研究发现是高版本的rust已经不支持win7了,所以就使用1.77.2这个版本来编译,然后就行了。

逻辑设计和硬件控制语言HCL

将很多的逻辑门组合成一个网,就能够构建计算块,称为组合电路。构建这些网有两条限制: - 两个或多个逻辑门的输出不能连在一起。否则它们可能会使线上的信号矛盾,可能会导致一个不合法的电压或电路故障。 - 这个网必须是无环的。也就是在网中不能有路经过一系列的门而形成一个回路,这样的回路会导致该网络计算的函数有歧义。

理解指针

每个指针都对应一个类型,这个类型表明指针指向哪一类对象。特殊的void*类型代表通用指针。比如,malloc函数返回一个通用指针,然后通过显示强制类型转换或者复制操作那样的隐式强制类型转换,将他转成一个有类型的指针。

异质的数据结构

C语言的struct声明创建一个数据类型,将可能不同类型的对象聚合到一个对象中。结构中各个组成部分用名字来引用。类似于数组,结构的所有组成部分都存放在一段连续的区域内,而指向结构的指针就是结构第一个字节的地址。编译器维护关于每个结构类型的信息,指示每个字段(field)的字节偏移。它以这些偏移作为存储器引用指令中的位移,从而产生 对结构元素的引用。

程序的机器级表示-过程

一个过程调用包括将数据(以过程参数和返回追的形式)和控制从代码的一部分转移到另一部分。 A32程序用程序栈来支持过程调用。机器用栈来传递过程参数、返回信息、保存寄存器用于以后恢复,以及本地存储。为单个过程分配的那部分栈称为栈帧。

程序的机器级表示-控制

除了整数寄存器,CPU还维护着一组单个位的条件码(condition code)寄存器。常用的条件码有: - CF: 进位标志。最近的操作使最高位产生了进位。可以用来检查无符号操作数的溢出。 - ZF: 零标志。最近的操作得出的结果为0; - SF: 符号标志。最近的操作得到的结果为负数。 - OF: 溢出标志。最近的操作导致一个补码溢出(正溢出或负溢出)

关于作者

程序员,软件工程师,java, golang, rust, c, python,vue, Springboot, mybatis, mysql,elasticsearch, docker, maven, gcc, linux, ubuntu, centos, axum,llm, paddlepaddle, onlyoffice,minio,银河麒麟,中科方德,rpm