03 2023 档案

摘要:0. 思考 单向链表有序插入,插入点分为这样几个地方: 当前链表为空,被插入节点是第一个节点 被插入节点作为头结点 被插入节点在中间 被插入节点在尾部 那么按照这样的步骤一步步的去实现,需要两个指针,后指针作为比较节点,前指针仅是为了记录位置,便于链表节点在中、尾两处插入。 1. 单指针记录遍历 如 阅读全文
posted @ 2023-03-22 21:35 Qing-Huan 阅读(43) 评论(0) 推荐(0) 编辑
摘要:直接上代码 若代码有可优化或某处不合理,欢迎指正,不胜感激。 #include <stdio.h> #include <stdlib.h> #include <string.h> int compare_double(void* dst_addr, void* src_addr) { return 阅读全文
posted @ 2023-03-19 09:35 Qing-Huan 阅读(17) 评论(0) 推荐(0) 编辑
摘要:以下观点仅代表个人想法,不是标准 C语言中有三种循环控制语句(goto不作考虑),那么这三个语句除了语法不同外,是否还有其他区别呢? 像if语句和switch...case语句之间,除了语法不同外,switch...case对特殊的case值进行了跳转表优化,以空间换时间。 对于较为“古老”的机器, 阅读全文
posted @ 2023-03-19 09:22 Qing-Huan 阅读(56) 评论(0) 推荐(0) 编辑
摘要:&& 短路特性 遇到假即为假,不会判断下一组表达式 || 短路特性 遇到真即为真,不会判断下一组表达式 阅读全文
posted @ 2023-03-19 09:03 Qing-Huan 阅读(53) 评论(0) 推荐(0) 编辑
摘要:0. 本文结构概述 二维数组在内存中是线性存储 二维数组排序(C语言代码) 1. 二维数组在内存中是线性存储 2. 二维数组排序(C语言代码) #include <stdio.h> int main(int argc, char* argv[]) { int arr[3][4] = {34,15,3 阅读全文
posted @ 2023-03-19 08:58 Qing-Huan 阅读(186) 评论(0) 推荐(0) 编辑
摘要:0. 本文结构概述 switch...case语法格式 C和C++的switch不同点 switch...case反汇编 switch...case跳转表 case值间距过大不用跳转表 1. switch...case语句 switch (表达式1) // 表达式结果不能是实型、字符串 { case 阅读全文
posted @ 2023-03-19 08:46 Qing-Huan 阅读(749) 评论(0) 推荐(0) 编辑
摘要:前言 技术背景:能够使用信号量进行C语言编程使用 遇到问题:python的信号量阻塞导致线程无法接收kill的终止信号(SIGTERM) 步骤 将遇到的问题写成一个demo.py 用C语言将其复现一遍,对比其与python中的信号量不同之处,并进行多种测试 根据测试结果,带着问题查找资料,并进行总结 阅读全文
posted @ 2023-03-18 20:54 Qing-Huan 阅读(9) 评论(0) 推荐(0) 编辑
摘要:0. 本文结构概述 若函数无返回值,默认为int类型 返回值小于4B,存入寄存器EAX中 返回值大于4B小于8B,存入寄存器EAX和EDX中 返回值大于8B放入栈区的临时空间 1. 若函数无返回值,默认为int类型 2. 返回值小于4B,存入寄存器EAX中 3. 返回值大于4B小于8B,存入寄存器E 阅读全文
posted @ 2023-03-18 20:28 Qing-Huan 阅读(112) 评论(0) 推荐(0) 编辑
摘要:## 4字节对齐的实质 之前有想过为什么C语言的字符串库函数,几乎都要处理这种4字节对齐问题,查找资料后,认为原因是: 1. 若非对齐访问,需要读取两次,CPU做数据重组,导致软件运行效率低。 在看操作系统的硬件原子操作时,发现若对齐有误或不规范,会有以下两种问题发生: 2. 通过结构体跨主机通信时 阅读全文
posted @ 2023-03-18 18:03 Qing-Huan 阅读(227) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示