- 博客(15)
- 资源 (1)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 多线程API - 小白如何快速上手并发编程
多线程API - 小白如何快速上手并发编程线程的基本概念一.线程和进程的区别(linux环境下)进程是资源管理的最小单位,进程是系统执行的最小单位线程和进程都有对应的PCB和TCB,在linux内核中创建线程和进程使用的底层函数和进程一样,都是clone进程可以蜕化成线程,一个进程可以有一个至多个线程进程有自己独享的0-4G虚拟地址空间,而线程共享同一进程的地址空间二.线...
2020-04-30 10:37:48
2877
2
原创 VS在编译MFC的时候编译通过却无法运行的解决方法
在VS2019中编译一个生产分析excel软件,再添加一个多选表格的功能时,编译已经显示0 waring,0 error,但是实际运行时,没有任何反应。首先确定编译确实没有问题,运行时无任何警告报错,其次将代码回退至改动前即可运行。确认该问题大概率并非代码错误引起的问题。打开本地编译器进行调试,发现提示在uart_task函数发生异常。且异常显示为堆栈溢出。正在上传…重新上传取消退出调试模式,在资源解决方案右键选择项目属性,选择链接器---->系统---->堆栈保留大小,发现并未设置,默认值为1M。正在上传
2022-06-20 15:56:28
2777
2
原创 GIT基础笔记之一:从浅入深使用GIT
GIT基础笔记之一:从浅入深使用GIT前言由于公司一直用的TortoiseSVN,导致之前用的一些git命令忘记,因此做个笔记总结一下,顺便后续部署几个自己的小项目,同时为大家在学习代码的路上越走越远,尽一点绵薄之力,如果这篇博文能够帮助到您一星半点,我将不胜荣幸。GIT和SVN的区别,网上关于两者的区别和优缺点有很多,但是就我自己对两者的实际体验来说,GIT相较于SVN最大的特点就在于分布式系统。在分支管理的使用上,SVN在使用时,大家的使用流程基本都从服务器上checkout下一份
2020-11-16 17:53:49
626
1
原创 微处理器上的内存优化_避免栈开销的链表翻转。
链表的倒置前言在面试过程中基本考数据结构时,单链表的倒置属于不可或缺的一部分。而链表的反转有多种不同的方法可以达到效果,可以通过递归和非递归的方式,甚至还可以利用栈的FILO原理,本文主要介绍递归和非递归的方式。前置条件首先我们需要创建出一条链表来进行链表的反转#include <stdio.h>#include <stdlib.h>#include "link_list.h"static COMMON_LINKLIST *insert_linklist(C
2020-08-16 23:32:00
714
原创 从测试角度写代码(二)宏定义快速定位
从测试角度写代码(二)宏定义快速定位一.为什么需要宏快速定位问题通过上面我们已经用了调试分级将调试信息和交互信息分离,可以快速找到分离出交互信息和调试信息。但是在调试信息过程中,比如内存申请,我们会malloc很多次,在很多个地方都需要判断有没有malloc成功,那么当运行时,系统给我们打印出"no enough memory malloc"时,我们需要快速定位到是哪个地方没有malloc成功。二.快速定位的宏有哪些?FILE:定位出异常属于哪个文件LINE:定位出异常在文件的
2020-06-16 17:59:50
1483
原创 从测试角度写代码(一)调试分级
从测试角度写代码(一)调试分级一.为什么要使用调试分级调试分级并不是一定要做的,需要根据具体情况进行分析,比如我们在使用开发小型代码时,是完全不需要使用调试分级的,反而会给我们带来了代码编写的复杂性。调试分级一般用于大型项目开发中,可以快速定位代码问题,提高编程效率,以下场景都是可以使用调试分级进行优化的选项。当我们进行大型项目开发时基本都是按阶段性开发进行的,当我们调试完一阶段代码之后,如果需要继续调试开发下一段代码时,需要将上一段代码的打印信息全部屏蔽。上一个场景尽管有同学说我们可以开发下一阶
2020-06-16 11:52:13
1857
原创 通用链表 - 如何写出高质量代码
通用链表 - 如何写出高质量代码在项目开发的过程中,我们不可避免的遇到一些在编译前无法知道信息大小的场景,需要使用链表存储。比如解TS文件流时需要解出pat表,pmt表,sdt表,eit表等。但是每一种表所组成的链表结点信息都不一样,通用做法是每一个表都需要写对应的链表插入函数,打印函数和删除函数。这样会导致拥有大量的重复相似代码,为了提高链表函数的利用率,我们在下面引入通用链表的概念...
2020-05-05 17:45:20
1943
原创 线程分离 - 线程也会内存泄漏
线程分离 - 线程也会内存泄漏 线程退出后,释放了所有占用的资源嘛? 上述问题我们通过以下代码进行测试,不断地创建线程,每次创建线程计数器加一,只到创建线程失败,打印出已创建的线程数 #include <stdio.h>#include <unistd.h>#include <pthread.h>void ...
2020-05-03 17:12:48
2391
原创 快速排序 - 一个萝卜一个坑
快速排序 - 一个萝卜一个坑 快速排序算法的通俗理解 quick_sort简单来说就是一种用到递归的分治算法,每一个递归基就是采用拔萝卜填坑的思想。假设有一排大小不同的萝卜,我们想要把萝卜从小到大挖坑进行排列,萝卜太多直接对比压根看不过来,小白兔手上只能一手拿一个萝卜进行对比,我们需要先拔出一个萝卜作为参照物,具体对比步骤如下 ①拔出一个萝卜作为参照物,具体第几个随意,为了方便...
2020-04-27 10:51:29
3876
1
原创 回调函数 - 灵活的函数指针
回调函数一 同步回调及代码什么是回调函数? 编程除了分为面向对象和面向过程外,还可以分为系统编程和应用编程。如下图所示,主函数和callback函数在应用层,library函数在系统层。在使用时,main将callback函数指针传入给library函数,library函数在运行时通过传入的callbakc函数指针调用callback函数。而首先函数指针做为参数传入,而后根据该参数被调用...
2020-04-16 12:08:03
2076
原创 文件权限修改
文件权限修改 了解文件所有权 使用ls -l (-h)命令查看文件具体属性 文件所有权 硬连接个数 文件所有者 文件所在组 文件大小 时间 名称 -rw-r--r-- 1 root root 2187 Jan 28 19:05 consum.c 在文...
2020-02-01 10:07:52
548
原创 汉诺塔问题
汉诺塔hanoi问题 问题描述 假设有三个柱子A.B.C,N个盘子 每次只允许移动一个盘子 必须保证小盘子在大盘子之上 如何把所有盘子从A移到C? 理解过程(转化为递归问题) 用C柱做过渡,将A柱上的n-1的盘子移到B上 从A柱上最下面的盘子直接移到C柱上 用A柱做过渡,将B柱...
2020-01-06 11:07:11
442
原创 最大子序列和
Maximum Subsequence Sum问题描述给定K个整数组成的序列{ N1, N2, …, NK },“连续子列”被定义为{ Ni, Ni+1, …, Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给...
2019-11-26 21:35:35
568
原创 字符串函数构析
字符串函数构析今日参加了一场笔试,刚好程序题问到一道strcpy函数构建,刚好之前看过字符串函数,同时网上文章大部分都是介绍了下函数的用法,缺少了函数的实现,今日就来自己构析下常见的字符串函数,字符串函数位于标准库的头文件string.h中,在使用函数时需引用该文件strlen 函数原型:size_t strlen(const char *s) 函数功能:返回s的字符串函数...
2019-10-16 12:37:37
654
多线程API.zip
2020-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人