
嵌入式编程语言C/C++
文章平均质量分 76
1、C语言基础
2、嵌入式领域C语言常见规约
3、嵌入式C调试及分析
4、嵌入式C语言测试
阿祖_in_coding
万丈高楼平地起
展开
-
使用位运算实现加法、减法、乘法和除法
使用位运算实现加法、减法、乘法和除法是一个经典的计算机科学问题。位运算通常用于低级程序设计和性能优化中,以下是如何用位运算实现这些基本数学运算。原创 2025-03-14 20:53:08 · 371 阅读 · 0 评论 -
一文搞懂二叉树的递归实现原理(图解)
一文搞懂二叉树的递归实现原理(图解)1、活动记录调用函数时会发生genbg什么?如果这个函数存在形参,形参就初始化为实参传递来的值。另外,函数结束后,系统要知道从哪里继续执行程序。而递归的实现就需要知道 从哪里继续执行。指示函数从何处调用的信息保存在系统中。为了做到这一点,返回地址被存储在主内存中预留的特定区域。对于函数调用来说,需要存储的信息不只是返回地址。因此使用栈进行动态分配效果会好一些。那么调用函数时,需要保存哪些信息?每个函数(包括主函数main())的状态由以下因素决定:函数中的所有局部原创 2021-04-13 22:15:05 · 6352 阅读 · 4 评论 -
库函数:memcpy 和 memmove
memcpy 和 memmove都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count); 他们的作用是一样的,唯一的区别是,当内存发生局部重叠的时候,memmove保证拷贝的结果是正确的,memcpy不保证拷贝的结果的正确。举例说明原创 2021-06-30 19:46:09 · 245 阅读 · 0 评论 -
Golang源码分析之sort
工程级的排序算法如何实现,所以假设各位都清楚了排序相关的一些前置知识,包括:时间复杂度分析,插入排序,希尔排序,堆排序,快速排序和Go语言的基本语法。首先需要实现Interface接口中的三个函数。排序过程中,比较和交换是必要环节,比较可以判断是否需要交换,交换可以减少逆序度(集合变有序)。实现三个函数的目的是为了实现slice和user defined cllections。比如对于复杂数据类型包含注册时间+用户活跃度等的多维度排序,可以自定义Less()。以下分析仅是个人理解。//sort的实现接口原创 2021-09-24 09:38:24 · 343 阅读 · 0 评论 -
十大排序算法及优化 ( C++简洁实现)
十大排序算法前面的和其他博客内容大差不差,主要可以查看后几种排序算法的分析和代码实现。归并排序和快速排序为一类(使用递归);堆排序:优先队列,在刷题中使用较多;计数排序、桶排序和基数排序为一类;我看了很多博客,对于后三种都没有清晰的讲解。在搞清楚之后给大家分享,如果存在错误,请多包涵。特别需要理解计数排序中累加数组的妙处。排序算法十大排序算法特别需要理解计数排序中累加数组的妙处。0、算法概述0.1 算法分类0.2 算法复杂度1、冒泡排序(Bubble Sort,稳定)2、选择排序3、插入排序(原创 2021-04-26 18:59:51 · 2802 阅读 · 6 评论 -
二叉树非递归遍历实现
二叉树遍历的非递归实现基础知识二叉树的遍历分为深度优先遍历(DFS)和广度优先遍历(BFS)。深度优先遍历:尽可能地向左(或右)进行,在遇到第一个转折点,向左(或右)一步,然后再尽可能地向左(或右)发展。这一过程重复直到访问了所以节点。树的深度优先遍历一般有三种:VLR——前序遍历(根左右)LVR——中序遍历(左根右)LRV——后序遍历(左右根)核心思路遍历时一定要搞清楚一点就是,输出都是根节点(核心思想),因此不同的遍历方式仅仅是根节点的输出时机不同。中序遍历:访问顺序为左根右。遇到节点原创 2021-05-06 15:57:55 · 522 阅读 · 4 评论