C语言
文章平均质量分 76
C语言笔记
killer-p
欢迎指出博客中的错误,如果你觉得对你有用,记得点赞三连,有问题可留言,会及时回复
展开
-
C语言编译、链接简介
文章目录一、编译步骤简介二、目标文件的组成1、文件头2、段表3、代码段、数据段、只读数据段、bss段4、重定位表5、符号表三、静态链接1、分配空间与地址2、确定符号地址3、符号重定位四、装载五、动态链接1、动态链接地址无关代码2、延迟绑定3、动态链接器自举一、编译步骤简介一个.c文件,是如何“变成一个”可执行文件呢。以main.c为例,如何得到main?你会回答是通过编译器的编译后输出来的,就像以下命令:gcc -o main.c maingcc是一个集合了编译器,链接器的软件集合。将一个输入的C原创 2021-08-23 00:31:05 · 2310 阅读 · 2 评论 -
蓝牙调试器 接收处理 hc-05蓝牙上传数据
文章目录前言一,设置数据包格式1.1原始数据二,编辑控件三,stm32 串口发送四,stm32 串口接收前言串口是我们经常用来输出数据的接口,使用一些蓝牙串口模块,如HC-05能方便的通过蓝牙将串口数据发送到上位机,省去了串口连线到电脑的步骤。今天分享一个功能强大的APP,蓝牙调试器,它具备以下功能发送/接收蓝牙串口的数据自定义蓝牙串口 发送/接收数据包格式支持多种控件:如按键,文本,滑动窗口,坐标轴显示等。尤其是自定义数据包格式 和 多种可选的控件 是数据处理强大工具!本原创 2021-05-18 20:59:32 · 14565 阅读 · 41 评论 -
c语言结构体的内存分布
考虑一个结构体struct S{ char a; int b; char c;}s;编译器按照成员列表的顺序一个个给成员分配内存,同时内存还需要满足边界对齐的要求,边界的大小就是占用内存最大的成员的大小,在这个例子中,是int类型的b,大小为4字节。所以该结构体的边界对齐要求为4字节。编译器首先给a分配一个字节的内存接着由于b需要占用4个字节内存,所以分配另外3个字节的内存来满足对齐的要求,这三个字节的内存只起填充作用为b分配4个字节的内存最后为c分配一个字节内存,再分配额外3个字节原创 2021-04-13 11:13:45 · 1230 阅读 · 0 评论 -
c语言图文详解 实现ringbuff 源码详解
一 什么是ringbuffringbuff是环形buff,是buff缓存的一种,可以用来存放程序运行过程的暂时数据。一般的buff即是一个数组,而环形buff就是将数组的头和尾链接起来的数组。老规矩,源码先放这:https://gitee.com/killerp/ringbuff.git1,ringbuff的优点ringbuff比普通的buff使用更加高效灵活,可以边读数据边写数据。二 ringbuff的实现一个ringbuff的实现至少需要以下四个功能:创建ringbuff数据写入rin原创 2020-08-28 11:10:32 · 3814 阅读 · 2 评论 -
C语言打印多颜色字体,多功能打印,协助开发调试
多功能打印在c语言中,我们经常用c语言自带的printf();去打印字符串等,这在嵌入式开发过程中可以帮助我们认识程序的运行情况。但是c自带的printf();只能打印一种颜色的字体,在串口中部利于我们清楚的分析程序。所以参考网上其他的打印教程,也写了一个更加多功能的打印函数,可以用在所有使用c语言的程序中。快速认识log三种打印都会自动打印调用打印的文件,打印函数在文件的位置,调用打印的函数名称。这样可以是我们在开发过程中更加清楚的了解程序运行的情况,以及代码出错的位置等。也是一种简单的debug手原创 2020-08-27 17:07:19 · 944 阅读 · 0 评论