C语言技巧
建鼎呓语
嵌入式系统软件开发
展开
-
指针移动语义的简单包装
指针移动语义用来代替指针赋值过程,使得指针赋值后源指针为空,避免两个指针指向同一段内存块。程序运行结果,可以看到在打印的时间点,只有一个指针指向了目标内存块。原创 2023-05-23 21:24:11 · 80 阅读 · 0 评论 -
计算机求解满足三角形各边数字之和相等的数字填充
数组中存放1到9的数字,每次随机交换两个数字,构建出新的数字组合,计算这个数字组合是否符合要求。原创 2023-03-03 23:02:44 · 677 阅读 · 0 评论 -
C语言中使用二进制常量
C语言标准中针对数值常量,规定了八进制、十进制和十六进制的规则,但是对于常用的二进制则没有规定。一些编译器厂商,自行扩展了类似0b10001000这样的语法,用来表示二进制数值。那么如何通过在标准C语言环境中,使用二进制常量,就是本文探讨的问题。基本的思路是在预编译期间,通过多遍宏替换,将二进制常量替换成十六进制常量。以B8(10011001)为例,经过三遍宏替换,最终得到0x99原创 2012-08-08 11:30:00 · 18387 阅读 · 3 评论 -
协同例程使用setjmp实现
协同例程是某种类似于多线程的概念,只是线程的切换由程序自己掌控,可以避免传统线程间切换时的数据保护问题。这里使用setjmp和longjmp的配合(形式上是从一个函数跳到另一个函数,实际上是返回历史执行点),实现了比较简陋的协同例程。下面程序执行流程就体现了,执行流在main的while loop和aux的while loop之间跳转,依次执行。注:此处代码是在Dev-CPP中编译运行原创 2011-12-28 17:10:33 · 2526 阅读 · 0 评论 -
疯狂猜歌之程序员篇
最近闲着无聊玩起了疯狂猜图和疯狂猜歌游戏,疯狂猜图很多人就网上描述图像,就有人可以回答是什么品牌或标识。疯狂猜歌则不然,没办法直接描述旋律啊,后面发现百度也打起了疯狂猜歌的主意,在专属页面上列出了所有两个字歌名、三个字歌名(如此不一一例举),说啥听完所有歌曲,就能够回答疯狂猜歌问题。有点疯狂,得听多少小时啊。程序员嘛,自然有了歌曲全集,就可以根据列出了三十个字来匹配搜索一下啦。下面就是针对原创 2013-07-20 09:15:10 · 2932 阅读 · 0 评论 -
C语言字符串与集合的关系
const char *str = NULL;char *str = "";char *str = "ABC";原创 2014-05-17 09:07:33 · 1786 阅读 · 0 评论 -
C语言触发器模式
触发器模式是在条件满足或不满足时,触发特定动作的模式。用于周期性处理过程中,根据事件触发时机,进行事件响应处理。原创 2017-01-18 00:34:43 · 3846 阅读 · 0 评论 -
C语言生成BMP文件
BMP 是微软在 windows 系统中使用的一种位图图像格式,主要包含调色板图像和直接色图像两大类。文件格式由文件头、信息头、调色板数据、图像数据四个部分构成。文件头区域包含文件的标识、文件大小和图像数据区偏移量等字段。信息头区域则包含图像宽度、高度、像素格式等信息。所有数据一般按小端字节序来存储,且数据块一般组织成4字节对齐。原创 2017-12-14 18:26:08 · 13470 阅读 · 6 评论