随笔分类 -  Tips of C

摘要:一.前言 可变参数传参是C语言的一种高级用法。 二. 用法示例 求任意个 int 类型数据的平均值。 点击查看代码 double avg_int(int count, ...) { va_list ap; /* 2. 声明参数列表变量 */ int sum = 0; va_start(ap, cou 阅读全文
posted @ 2025-11-07 22:03 自由的Charles 阅读(51) 评论(0) 推荐(0)
摘要:一.preface 看过许多文章,关于ringbuffer在多线程环境下的使用,或者在中断写、thread读的情况下的使用,一般都是需要加锁,来保证同步。 但是在我开发项目的过程中,发现ringbuffer的读写并不需要加锁,资源也不会有竞争。 二.analysis 环形缓冲区是在一端写,另一端读; 阅读全文
posted @ 2025-04-03 18:04 自由的Charles 阅读(98) 评论(0) 推荐(0)
摘要:一.前言 lvgl有一个像素点类型定义"lv_color_t",可以用表示多种颜色格式,RGB565、RGB888、RGB111等。 二.代码分析 1.对于不同颜色使用联合体、结构体、位域进行类型定义。 点击查看代码 typedef union { uint8_t full; /*must be d 阅读全文
posted @ 2024-10-16 17:22 自由的Charles 阅读(868) 评论(0) 推荐(0)
摘要:大端的高位字节在低地址处,小端的低位字节在低地址处 以 int32_t a = 0x12345678为例 看到一段大小端验证代码,记录下来 点击查看代码 uint32_t endianess_test = 0x11223344; uint8_t * endianess_test_p = (uint8 阅读全文
posted @ 2024-08-22 16:46 自由的Charles 阅读(58) 评论(0) 推荐(0)
摘要:1.减小变量的跨度和存活时间,可减小代码的复杂度。所以尽可能少使用全局变量 2.变量的赋值越明显越好! 3.准备抛弃变量时,要给它赋值一个不合理的数值。 例如,可以在删除一个指针后把它的值设为NULL。 4.函数命名尽可能采用动宾结构(尤其子函数) 5.区分类变量和全局变量。若类外部的子程序需要使用 阅读全文
posted @ 2023-10-28 19:40 自由的Charles 阅读(50) 评论(0) 推荐(0)
摘要:先贴上一篇优秀的博文链接: C语言之可重入函数 和不可重入函数_c 可重入函数_KiranWang的博客-CSDN博客 总结:不可重入函数的四种情况 1.静态数据结构:如静态局部变量活全局变量 2.malloc()或者free()函数因为这两个函数都会操作全局的链表,如果第一次malloc没结束时, 阅读全文
posted @ 2023-08-23 18:19 自由的Charles 阅读(403) 评论(0) 推荐(0)