logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

嵌入式数据库-SQLite

轻量化,易用的嵌入式数据库,用于设备端的数据管理,可以理解成单点的数据库。传统服务器型数据库用于管理多端设备,更加复杂SQLite是一个无服务器的数据库,是自包含的。这也称为嵌入式数据库,这意味着数据库引擎作为应用程序的一部分运行。MySQL需要运行服务器,MySQL将需要客户端和服务器架构通过网络进行交互。基于嵌入式的数据库主要有:SQLite,Firebird,Berkeley DB,eXtr

文章图片
#sqlite#数据库
C语言结构体位域

struct 位域结构名类型 位域名:位域长度其中位域列表的形式为: 类型说明符 位域名:位域长度这种定义方式,极大的节省了空间,应用场景多为网络数据包格式定义,我们在收包解包的时候使用比较多。

文章图片
#c语言
C语言(插入、选择、冒泡、快速)排序

目录 前言一、插入排序二.选择排序三.冒泡排序四、快速排序hoare版本(左右指针法)时间复杂度、稳定性表这里实现几种常见的排序算法:步骤:1.从第一个元素开始,该元素可以认为已经被排序2.取下一个元素tem,从已排序的元素序列从后往前扫描3.如果该元素大于tem,则将该元素移到下一位4.重复步骤3,直到找到已排序元素中小于等于tem的元素5.tem插入到该元素的后面,如果已排序所有元素都大于te

文章图片
#c语言#排序算法#算法
进程内存分布(详解)

由编译器自动分配释放,速度较快用来存储函数调用时的临时信息的结构,存放为运行时函数分配的局部变量函数参数返回数据返回地址等。这些局部变量等空间都会被释放程序运行过程中函数调用时参数的传递也在栈上进行,如递归调用栈当栈过多的时候,就是导致栈溢出(比如大量的递归调用或者大量的内存分配)栈是向低地址扩展的数据结构,是一块连续的内存的区域,空间有限。

文章图片
#linux#运维#服务器
超详细--树莓派基于Linux内核驱动入门开发(从会读到会写)

写驱动是为了操作IO口,实现自己的wiringpi库,跟硬件打交道。弄清楚寄存器的分组其中寄存器的0表示的是分组,目标操作的IO是pin4,由文档可知,属于寄存器分组0。volatile的使用加volatile作用是 : 1、防止编译器优化(你给的这个地址编译器可能认为不好,可能会省略,也可能会进行更改)这些寄存器变量;2、要求每次直接从寄存器里读值。由于随着程序的执行,会改变寄存器当中的数据,而

文章图片
#linux#arm
超详细--树莓派基于Linux内核驱动入门开发(从会读到会写)

写驱动是为了操作IO口,实现自己的wiringpi库,跟硬件打交道。弄清楚寄存器的分组其中寄存器的0表示的是分组,目标操作的IO是pin4,由文档可知,属于寄存器分组0。volatile的使用加volatile作用是 : 1、防止编译器优化(你给的这个地址编译器可能认为不好,可能会省略,也可能会进行更改)这些寄存器变量;2、要求每次直接从寄存器里读值。由于随着程序的执行,会改变寄存器当中的数据,而

文章图片
#linux#arm
GDB调试指南(基础入门)

开发和使用Unix程序时,有时程序莫名其妙的down了,却没有任何的提示(有时候会提示core dumped),这时候可以查看一下有没有形如core.进程号的文件生成,这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考,能够很大程序帮助我们定位问题。设置断点后,以便我们更详细的跟踪断点附近程序的执行情况。通过上面的例子演示,我相信读者已经对于通过GDB调试C/

文章图片
#linux#c语言
位运算(按位与、按位或、异或、取反)以及原码、反码、补码

由于[1111_1111]+[0000_0001]=[0000_0000],所以在负数反码的基础上+1就可以解决反码中跨0的误差问题,同时不会对负数与它对应的二进制反码的同步递增产生影响,所以在反码的基础上+1就完美的解决了符号参与预算的问题,这就是补码为什么是在负数反码的基础上+1的由来。用第一位表示符号,其余位表示值。从上面的原码表中可以看见左边每增加一个二进制单位对应的真数是递减的,而右边每

文章图片
#c语言
嵌入式开发概述(树莓派介绍)

国内普遍认同的的定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功耗、可靠性、成本、体积、功耗等严格要求的专用计算机系统。嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

文章图片
#arm开发
到底了