自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 资源 (8)
  • 收藏
  • 关注

原创 git教程 git笔记 git常用 git使用 git操作 git简明 git版本控制 git仓库

git 使用初次运行 Git 前的配置查看、修改 gitconfiggit config --list --show-origingit config --global user.name "John Doe"git config --global user.email [email protected]记录每次更新到仓库查看当前文件状态git statusgit status -s # 状态简览跟踪新文件或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为

2021-03-12 18:17:12 463

原创 c 语言函数指针和高级语言闭包区别

高阶函数所谓高阶函数,就是用函数作为参数的函数。函数指针typedef void (*func_t)(int);void foreach(struct node *list, func_t func) { while (list) { func(list->val); list = list->next; }}void f(int n) { printf("node(?) = %d\n", n);}int main() { st

2021-03-11 16:35:03 882

原创 GC垃圾回收的基本方式

GC 内存回收的三种基本方式类似c和c++的语言中,内存由程序员手动管理,需要时请求操作系统分配,不需要时返还系统,虽然效率高,但是容易出错。标记清楚方式从根开始将可能被引用的对象用递归的方式进行标记,类似树的结构,然后将没有标记到的对象作为垃圾进行回收。分两个阶段,第一阶段从根部开始打标记,第二阶段将全部对象按顺序扫描一遍,将没有标记的对象进行回收。缺点:在分配了大量对象,只有小部分存活的情况下,还要对大量死亡对象进行扫描,消耗时间。复制收集方式从根开始将被引用的对象复制到另外的空间

2021-03-09 22:32:00 477

原创 基于MIT6.828 分析 linux 从用户态到内核态用户栈和内核栈切换过程

基于MIT6.828 分析 linux 从用户态到内核态用户栈和内核栈切换过程基于MIT6.828课程的Lab3,我们来分析一下程序从用户态到内核态中用户栈内核栈切换的过程。你需要具备:MIT6.828 课程的基本了解,环境搭建和代码运行汇编基本知识gdb 基本调试首先函数调用栈是这样的:i386_init --> env_run --> env_pop_tf,env_po_tf 中 iret 模拟中断返回进入用户态,执行 hello.c 代码,umain --> l

2020-12-09 12:03:40 359

原创 aosp 编译 automotive 中遇到的问题

编译1[ 66% 66975/100143] AAPT2 link out/target/product/generic_x86_64/obj/APPS/CarSystemUI__auto_generated_rro_product_intermediates/package-res.apkFAILED: out/target/product/generic_x86_64/obj/APPS/CarSystemUI__auto_generated_rro_product_intermediates/pa

2020-07-06 18:52:29 2490

原创 c语言可变参数函数的原理与实现详解

c 语言可变参数函数的原理与实现详解上代码,注意此代码运行在 32 位系统上,所以下文的数据类型大小按32位计算。#include <stdio.h>#include <stdarg.h>// 模仿 printf 函数可变参数的样式void f(const char *fmt, ...) { // 模仿获取可变参数的获取过程 char *ap; ap = (char *)&fmt; // ap 为第一个参数的地址 int v1

2020-05-23 17:56:10 475

原创 一个例子体会java Consumer接口

一个例子体会java Consumer接口 Consumer<Integer> consumer = new Consumer<Integer>() { @Override public void accept(Integer integer) { LogUtils.d("===...

2020-04-13 11:32:08 310

原创 汇编 hello 程序 的学习

.datamsg: .ascii "hello \n" # 打印字符串,末尾没有隐 含的'\0'len = . - msg # 字符串长度,“. ”代表当前地址计数器的值.text.global _start_start: movl $len, %edx # 分布是 write 系统调用的3个参数 movl $msg...

2019-07-02 16:04:35 425

原创 统一修改iOS中xib颜色值

使用grep和sed命令批量修改iOS中xib颜色值或字符场景:将xib中原来的黑色背景颜色改为灰色。命令grep -rl "key=\"backgroundColor\" white=\"0.0\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"" ./ | xargs ...

2019-04-11 17:17:06 1143

原创 [Linux] 头文件实质-笔记

头文件实质定义和声明可以不用头文件,直接在使用的程序里进行申明,头文件实际上只是替换的作用。#include <stdio.h>extern void push(char); // 方法申明 extern 不是必须的, 如果不想被使用需要用static修饰。extern char pop(void); extern int is_empty(void);ext...

2019-04-10 09:38:45 165

原创 [Linux] c语言变量的存储位置-笔记

c语言变量的存储位置#include &amp;amp;lt;stdio.h&amp;amp;gt;/* 分配在 .rodata段, 程序加载时.rodata段和.text 段通常合并到一个Segment中, 只读,GLOBAL */const int A = 10; // 分配在 .data段,GLOBALint a = 20; // 分配在 .data段,LOCAL,只能在某一个目标文件中定义和...

2019-03-06 17:30:46 683

原创 [Linux] Linux内核编译安装过程,及Linux源码目录结构

从源代码编译和安装Linux kernel 2.6内核,及Linux源码目录结构环境主机:MacBook Pro (Retina, 13-inch, Early 2015) 10.14.3虚拟机软件:VMware fusion 11虚拟机里安装:Ubuntu 10.04内核版本:Linux Kernel 2.6.32.1备注1、为什么选择 2.6.32.1 版本?大多数书籍讲的...

2019-03-03 19:34:59 516

原创 图的基本算法--深度优先搜索(dfs) 和 广度优先搜索(bfs)

# 图# 0# / | \# 1 2 - 4# /# 3m = 999999 # 代表没有连接a = [[0, 1, 1, m, 1], # 邻接矩阵表示图 [1, 0, m, 1, m], [1, m, 0, m, 1], [m, 1, m, 0, m],

2017-10-12 11:53:32 587

原创 Arduino 串口读写 SD 卡模块

/* Arduino 的 Nano 的引脚 MOSI----------11 MISO----------12 CLK-----------13 CS------------10*/#include <SD.h>File myFile; // 文件的句柄String filename = "mogu.txt"; // 文件名const int chipSelect

2017-07-06 22:13:03 5170

原创 一个Linux下c语言线程池的实现

#include "threadpool.h"#include "common.h"threadpool_t *threadpool_init(int thread_num, int queue_max_num){ threadpool_t *pool = NULL; pool = malloc(sizeof(threadpool_t)); do {

2017-07-06 22:06:48 839

原创 【Lintcode】寻找峰值

描述你给出一个整数数组(size为n),其具有以下特点:相邻位置的数字是不同的 A[0] < A[1] 并且 A[n - 2] > A[n - 1] 假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。java codeclass Solution { /** * @param A: An integers array.

2017-07-05 16:22:21 444

原创 极客公园 Mac 第三方客户端(swift)

GeekPark-mac简介一个基于swift语言和Mac原生控件开发的极客公园第三方客户端。编译和运行编译环境v1.0版本: macos10.12.5/Xcode7.3.1/Swift2.2v2.0版本: macos10.12.5/Xcode8.3.3/Swift3.1运行git clone https://github.com/tzshlyt/GeekPark-maccd GeekParkp

2017-07-04 21:55:31 696

原创 iOS自动打包脚本

iOS自动打包脚本iOS自动打包脚本,并实现图片素材、文字资源、部分代码的替换和重签名,基于python实现。github地址: https://github.com/tzshlyt/ios-auto-replace-package使用场景为不同客户做定制化开发同一款app,功能相同,图片素材、显示的文字、配置和证书不同,每次人工替换素材和更换证书打包费时费力,所以使用python脚本实现自动化替

2017-07-01 09:26:39 804 1

原创 objective-c init方法的写法

Thus, we arrive at the rules that all stylish Objective-C programmers follow when writing initializers:If a class has several initializers, only one should do the real work. That method is known as th

2017-03-10 23:40:04 429

原创 vim正则表达式批量修改文本

vim正则表达式批量修改文本需求国家区号和地区的txt文本,转成ios上使用的plist文件例子test.txt+93:Afghanistan+355:Albania将其修改为<dict> <key>country</key> <string>Afghanistan</string> <key>code</key> <string>+93</string></di

2017-01-12 10:16:09 782

原创 gdb调试常用命令

gcc -g main.c //在目标文件加入源代码的信息gdb a.out(gdb) start //开始调试(gdb) n //一条一条执行(gdb) step/s //执行下一条,如果函数进入函数(gdb) backtrace/bt //查看函数调用栈帧(gdb) info/i locals //查看当前栈帧局部

2016-12-15 12:19:41 39135

原创 解决 The `master` repo requires CocoaPods 1.0.0 - (currently using 0.39.0)

原因:你使用的旧版本的cocoapods,提示你升级版本。如果想继续使用老版本,可在Podfile的最上面加上这句 source "https://github.com/CocoaPods/Old-Specs"参考:CocoaPods Specs Repo Sharding

2016-12-13 09:42:05 1043

原创 python实现一个完整的blog网站

简介学习廖雪峰python教程实战部分过程中编写的一个博客网站,包含日志、用户和评论3大部分,自己实现简易的ORM框架和Web框架,站点在这里,源码在github上。我将不断完善项目,如果你喜欢,点击github右上角Star给我一颗星星。界面学习过程刚开始跟着作者的教程编写这样一个博客网站的时候感觉很困难,因为自己对web上的很多概念不了解,对web服务器是怎么运行也不清楚,所以不知道作者为什么要

2016-12-11 23:38:10 29565 4

原创 Dijkstra算法--一个点到其余点最短路径

Dijkstra算法要求求一个点(源点)到其余各个顶点的最短路径。 思路先将源点到其余各个点的路径列出来dis[],找到最小值,这个最小值就是源点到这一点u的最短路径,并标记已经找出,再以这个点开始,依次遍历到其它点v,如果这个点u到其它点v的距离加上源点到这个点距离(也就是刚刚找出的最短距离)还小于源点直接到点v的距离dis[v],更新数组dis[v],再在dis[]找出最小值并标记,此时又求出

2016-12-09 23:23:46 5473

原创 Floyd-Warshall算法--求任意两点最短距离

Floyd-Warshall算法要求求任意两点之间最短的路径? 思路使用之前学习的广度优先搜索或深度优先搜索对每两个点都进行一次搜索,共进行n^2次。 本次使用方法:引入中转点k,如果i到k的距离 + k到j的距离 < i到j的距离,更新i到j的最短距离,将每个点做为中转点更新距离后就可以得到任意两点最短距离。代码#include <stdio.h>#define N 5#define M

2016-12-06 23:56:45 2863

原创 最少转机--图的广度优先遍历

最少转机–图的广度优先遍历要求求城市1到城市5最少转机数? 思路同样使用图的邻接矩阵存储法存储地图。使用广度优先遍历求解,先将城市1加入队列,然后从队列取出,查找城市1可以到达的城市并依次加入队列,在从队列中取出一个城市继续查找,相当于每次推进了一步,找到城市5,程序结束。代码#include <stdio.h>#define N 6#define M 6int a[N][M] = {

2016-12-05 23:13:18 1127

原创 城市地图--深度优先遍历最短路径

城市地图–深度优先遍历最短路径要求求城市1到城市5最短路程? 思路同样使用图的邻接矩阵存储法存储地图,注意这次是有向图。使用深度优先遍历求解。代码#include <stdio.h>#define N 6#define M 6int a[N][M] = { { 0 }, { 0, 0, 2, -1, -1, 10},

2016-12-05 22:59:18 4823

原创 图的深度优先遍历和广度优先遍历

深度优先搜索和广度优先搜索要求分别使用深度优先搜索和广度优先搜索遍历下面中的图。思想深度优先遍历思想:首先以一个未被访问过的顶点作为起始顶点,沿当前顶点的边走到未被访问过的顶点,当没有未访问过的顶点式,则回到上一个顶点,继续探索访问别的顶点,直到所有的顶点都被访问过。广度优先遍历思想:首先以一个未被访问过的顶点作为起始顶点,访问其所有相邻的顶点,然后对每个相邻的顶点,再访问它们相邻的未被访问过的顶点

2016-12-04 21:40:14 606

原创 水管工游戏--dfs的应用

水管工游戏要求如图只有两种管道,求如何摆放让管道从左上角到右下角连通?0代表树木,1~6代表管道的不同摆放方式,为了程序处理方便,将进水口在左边用1表示,上边用2表示,右边用3表示,下边用4表示。 思路使用深度优先搜索解决,先判断当前管道的类型,然后根据进水口的方向,决定下一个管道的位置和进水口的方向。使用栈保存路径。代码#include <stdio.h>#define N 5#define

2016-12-04 17:47:40 674

原创 宝岛探险--着色法

宝岛探险–着色法要求0代表海洋,1~9代表陆地,飞机降落在(5, 7)处,开始探索,统计探索的面积(格子数)。思路从(5, 7)处开始广度优先搜索,被加入队列的点的总数就是小岛面积。bfs代码#include <stdio.h>#define N 10#define M 10int a[N][M] = { {1, 2, 1, 0, 0, 0, 0, 0, 2, 3}

2016-12-04 15:22:15 512

原创 再解炸弹人--广度搜索和深度搜索

再解炸弹人要求之前炸弹人通过枚举统计每个点消灭敌人数,包括了小人不能直接到达的位置,现在要求小人从(3,3)位置开始,有敌人的地方小人不能通过,统计消灭敌人数。思路先使用广度优先搜索或者深度优先搜索找出小人可以通过的点,再统计这些点消灭敌人数bfs代码#include <stdio.h>#define N 13#define M 13char a[13][13] = {

2016-12-04 12:16:34 592

原创 广度优先搜索--BFS

广度优先搜索要求迷宫另外一种解法求迷宫中从坐标(0, 0)到(3,2)最少步数?0代表路,1代表障碍物,2标识走过的路径,3代表目标点。思路将每走一步的下一步可能的值依次加入队列,在从队列中取出走下一步,重复以上动作,直到找到目标。代码#include <stdio.h>#define N 5#define M 4int a[N][M] = { {0, 0, 1,

2016-12-04 12:13:38 335

原创 深度优先搜索--DFS

深度优先搜索dfs思想解决当下如何做,下一步如何做和当下如何做一样。要求求1~n的全排列。代码#include <stdio.h>#define N 3int a[10];int book[10];void dfs(int step) { int i; if (step == N + 1) { for (i = 1; i <= N; ++i) {

2016-12-04 12:12:20 347

原创 火柴棍等式--枚举

火柴棍等式要求用m(m <= 24)根火柴棍拼出A+B=C的等式,数字非零,则最高位不能是0,加号和等号各用了两根火柴棍,问可以拼出多少个不同等式?思路枚举法代码#include <stdio.h>#define M 18int fun(int x) { int a[10] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6}; int sum = 0; whil

2016-12-04 12:10:48 680

原创 炸弹人--枚举

炸弹人–枚举要求‘#’代表墙,‘G’代表敌人,‘.’代表空地,炸弹安放在空地上,炸弹威力不能穿过墙,哪里安放炸弹炸死的敌人最多?思路对每个点进行枚举,上下左右统计可消灭敌人的数量。代码#include <stdio.h>int main() { char a[13][13] = { "#############",

2016-12-01 22:40:28 764

原创 小猫钓鱼--栈和队列的使用

小猫钓鱼–栈和队列的使用思路q1和q2手中的牌分别是一个队列,桌面上的牌是一个栈,用book数组标记桌面上出现的牌。代码#include <stdio.h>struct queue{ int data[1000]; int head; int tail;};struct stack{ int data[10]; int top;};int main()

2016-12-01 22:38:02 1851

原创 栈--判断回文字符串

栈–判断回文字符串思路将字符串的前半部分依次压栈,再依次出栈后和字符串后半部分一一比较。代码#include <stdio.h>#include <string.h>#define LEN 8int main(){ char a[LEN] = "abcddcba"; char s[LEN]; int i, len, mid, next, top; len = L

2016-12-01 22:36:39 1077

原创 队列

队列要求一个数组,删除第一个元素,将第二个元素放到末尾,直到删除全部元素,得到删除的顺序。思路定义变量 head记录队首和变量tail记录队尾下一个位置,head++;删除队首元素,q[tail]=x;tail++;队尾添加元素。代码#include <stdio.h>#define LEN 100int main(){ int head, tail; int a[LEN] =

2016-12-01 22:35:39 255

原创 快速排序

快速排序思路先找一个基准数,通常是第一个,将所有比基准数大的放在右边,比基准数小的放在左边,然后再排序左边部分和右边部分。如何找到这个位置呢,定义两个指针i,j,i指向第一个,j指向最后一个,j从后往前移动,直到找到小于基准数的位置停下,然后i向后移动直到找到大于基准数的位置,交换两个数,j和i继续按什么方法移动,直到i和j相遇,就是基准数的位置。代码#include <stdio.h>#defin

2016-11-30 10:27:07 399

原创 冒泡排序

冒泡排序思路每次比较两个相邻的元素,如果它们的顺序错误就把它们交换过来。 (升序)每次取两位比较,越大越靠后,每一趟将最大数归位,执行n-1趟。代码#include <stdio.h>#define LEN 9int main(){ int i, j, temp; int a[LEN] = {2, 4, 5, 6, 3, 4, 2, 9, 10}; for (i = 0

2016-11-30 10:25:17 243

c#串口通信

一个简单的串口通信程序,目的在于了解最基本的串口通信和C#串口编程

2014-10-19

FilterProDTSetup

有源滤波器设计软件 高通 低通 带通 带阻 全通

2014-07-13

ASCII 码数组表

ASCII 码数组表 在写字库程序中可能会用到,方便大家使用

2013-10-03

NEC傻瓜入门手册

NEC开发环境的使用,帮助初学者快速入门.

2013-08-17

《常用电路模块制作》

全国大学生电子设计竞赛必备资料,高清扫描完整版。

2013-08-16

UtraCalN(匝数计算)

计算电感、线圈匝数和谐振FLC的计算软件。

2013-04-05

Keil_C51_uVision2调试命令中文版

u Vision2支持许多种命令,你可以在 Output Window – Command 窗口输入这 些命令以用于调试程序。

2013-03-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除