qsort

qsort是stdlib.h中的函数,因此使用前需要声明:#include <stdlib.h> qsort函数包含四个参数,分别是: 1.数组名 2.元素个数(从前往后计算) 3.数组元素所占字节(int,double,char等所占字节)...

Read More



do {...} while (0) 在宏定义中的作用

在Linux内核和其它一些著名的C库中有许多使用do{...}while(0)的宏定义。这种宏的用途是什么?有什么好处? do{...}while(0)在C中是唯一的构造程序,让你定义的宏总是以相同的方式工作,这样不管怎么使用宏(尤其在没有用大括号包围调...

Read More



uthash

uthash 是C的比较优秀的开源代码,它实现了常见的hash操作函数,例如查找、插入、删除等待。该套开源代码采用宏的方式实现hash函数的相关功能,支持C语言的任意数据结构作为key值,甚至可以采用多个值作为key,无论是自定义的struct还是基本数...

Read More



GIC v3 & v4 虚拟化架构

ARMV8-A架构中包含了对虚拟化的支持。为了与架构保持匹配,GICV3也对虚拟化做了支持。新增了以下特性: 对CPU interface的硬件虚拟化 虚拟中断 maintenance 中断:用于通知监管程序(例如hypervisor)一些特定的虚拟机...

Read More



FreeRTOS队列管理

队列管理 队列特征 数据存储 队列可以存储固定大小的数据项目。队列最大可存储数据项条目叫"length"。"length"和每条数据项尺寸都是队列创建时设置的。 队列是最常见的FIFO缓存——先进先出缓存,数据是写入到队尾,删除是从队列头开始。图31展示...

Read More