自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (6)
  • 收藏
  • 关注

原创 链表

链表(画图写相应的代码)(初始化、显示、插入(头插、中间插、尾插)、删除、逆序)定义结点类型、定义头指针、初始化链表、创建链表1.      不带表头的单链表//初始化void init_link(Link*head){    *head = NULL;}//显示void display_link(Linkhead){Link temp = head

2016-07-27 16:34:40 405

原创 编译预处理

1. 宏定义指令1) 定义变量与命令(避免幻数)2) 定义宏函数3) 自定义函数与宏函数的区别4) 内置宏定义5) typedef与#define的区别6) 枚举与#define的区别2. 条件编译指令#ifdef、#ifndef主要用于防止重复包含。我们一般在.h头文件前面加上这么一段:

2016-07-26 10:32:01 412

原创 复合数据类型

复合数据类型struct结构体union共用体enum枚举

2016-07-25 10:52:53 630

原创 关键字

C语言关键字register作用、注意事项C语言关键字static作用、注意事项C语言关键字const作用、注意事项C语言关键字extern作用、注意事项C语言关键字typedef作用、注意事项计算机组成原理运算器、控制器、存储器(寄存器)

2016-07-25 09:39:32 476

原创 编码规范(华为)

高质量的代码需要注意以下几点:1 排版2 注释3 标识符命名4 可读性5 变量、结构6 函数、过程7 可测性8 程序效率9 质量保证10 代码编辑、编译、审查11 代码测试、维护12  宏    一.排版1.   程序块要采用缩进风格编写,缩进的空格数为4个,函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风

2016-07-23 23:54:39 3510

原创 C语言中的面向对象思想

C语言的对象化模型面向对象的特征主要包括:.封装,隐藏内部实现.继承,复用现有代码.多态,改写对象行为封装    封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算

2016-07-21 16:46:37 983

原创 如何提高代码可读性、可维护性

高质量代码的三大要素:可读性、可维护性和可变更性做好代码规范、提高代码质量,能显著增强代码的可读性、可维护性和可变更性。努力提高代码的读写可维护性,是做好代码规范的必要非充分条件。代码规范和架构设计是软件的灵魂所在,代码质量偏低,就像是人失去了三魂七魄中的一魄,就会丧失活力,影响正常运行,增加软件交付后维护成本,出现推迟完成、超出预算、特性缺失等现象。任何语言都需要强调编码风格的一致性

2016-07-21 16:05:09 21666 15

原创 函数

使用函数可以提高代码的可读性、维护性、扩展性函数的三要素:函数名、函数形参、函数返回值函数名也是指针常量,保存函数存放的地址(函数的入口地址)一.函数的定义和声明         函数的定义是指对函数功能的确立,包括指定函数名,函数值类型、形参及其类型以及函数体等,它是一个完整的、独立的函数单位。而函数的声明的作用则是把函数的名字,函数类型以及形参的类型、个数和顺序通知编译系统,以

2016-07-21 11:21:56 735

原创 内存管理

你的数据放在哪里 未初始化的全局变量(.bss段)初始化过的全局变量(.data段)常量数据(.rodata段)代码(.text段) 栈(stack) 堆(heap)内存分配方式在全局数据区域分配在栈上创建在堆上创建常见的内存错误及对策 段错误的调试方法

2016-07-20 19:35:11 365

原创 数组与指针的区别

指针与数组的区别空间分配访问效率安全性函数形参

2016-07-20 19:12:09 499

原创 malloc、calloc、realloc函数剖析

1. C语言内存分配方式:1G 局部变量、函数形参、自动变量 (先进后出,管理权限:系统) malloc、ralloc、calloc分配的空间 3G (先进先出,管理权限:用户) bss:保存未初始化的全局变量 rodata:保存常量 data(静态数据区):保存全局变量

2016-07-19 17:21:41 470

原创 野指针与野指针的避免

野指针避免野指针良好的编码规范

2016-07-19 00:05:14 547

原创 指针与数组(三)——数组认知

整型数组 定义、初始化、遍历 一维数组 字符数组 array与&array的区别 数组名的作用(指针常量) 数组指针定义与初始化

2016-07-18 23:49:12 254

原创 指针与数组(二)——字符串认知

字符串就是首字符的地址字符串 字符串比较函数strcmp、strncmp 字符串拷贝函数strcpy、strncpy 字符串函数 字符串长度函数strlen 字符串连接函数strcat、strncat 字符串清空函数memset、bzero用C语言实现各字符串函数

2016-07-18 23:36:28 493

原创 指针与数组(一)——指针认知

指针是变量 如何理解指针?定义与初始化 指针的字节长度定义指针的几种规范(int *p; int * p;)指针的类型和指针所指向的类型 *与&运算符详解 二维指针(指针的指针)指针的值 多维指针空指针 野指针导致内存泄漏如何杜绝野指针? 指针的赋值运算 野指针 malloc函数动态分配内存 calloc函数

2016-07-18 23:28:56 402

原创 位操作训练

Training2:位操作训练1. 题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数2. 题目:输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.3. 题目:输入一个整数a,再输入两个整数p1,p2(p1,p2<32),将该整数的二进制表示方法中从右端开始的p1到p2位取反后输出4. 题目:输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.5. 题目:

2016-07-16 17:20:58 453

原创 运算符与表达式(三)——位运算符

常量是有符号的,位操作中无符号数要进行强制类型转换!1. 按位与(两者都为1结果才为1,有0结果必为0)应用:清零特定位:(mask中特定位置0,其他位为1,s = s & mask;)取某数指定位:(mask中特定位置1,其他位为0,s = s & mask;)2. 按位或(两者都为0结果才为0,有1结果必为1)应用:将源操作数某些位置1,其余位不变(mask中特定位置1,其他位为0,s = s | mask;)3. 异或(两者不同为1,相同为0)应用:使特定位的值取反(mask中特定

2016-07-16 14:23:15 895

原创 运算符与表达式(二)

一. 算术运算符——自增、自减运算符二. 关系运算符用于比较运算,包括:>、<、==、>=、<=、!=三. 逻辑运算符——短路逻辑与、短路逻辑或四. 位操作运算符五. 赋值运算符六. 条件运算符七. 逗号运算符在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。八. 指针运算符用于取内容(*)和取地址(&)运算九. 求字节运算符sizeof十. 运算符优先级

2016-07-16 14:05:49 331

原创 运算符与表达式(一)——算术运算符

算术运算符:用于各类数值运算,包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算%)、自增(++)、自减(--)初学C语言时一直以为很简单的自增、自减,却每次都算错,颠覆人生观啊有没有!C语音学了两年后,仍然算错,下面就来一波自增运算,感觉这辈子都不会错了呢!首先,说一下i++,++i的区别:i++: i使用完再自加++i: i自加后再使用废话不多说,实例

2016-07-16 08:53:07 624

原创 数据类型四——格式化输出和输入

一.格式化输入函数1.      scanf函数的使用scanf函数的一般形式:scanf(格式控制,地址表列)格式字符说明:  %a,%A 读入一个浮点值(仅C99有效)   %c 读入一个字符  %d 读入十进制整数  %o 读入八进制整数  %x,%X 读入十六进制整数  %s 读入一个字符串,遇空格、制表符或换行符结束。  %f,%F,%e,%E,%

2016-07-14 15:37:54 2770

原创 C语言数据类型(三)——变量与常量

一.什么是变量?变量的特点?什么是变量?    其值在其作用域内可以改变的量成为变量。一个变量应该有一个名字,在内存中占据一定的存储空间。变量在使用前必须要定义,每个变量都有自己的地址,变量依据其定义的类型,分为不同类型,如整型变量,字符型变量,浮点型变量,指针型变量等。变量的值可以发生改变,意味着它可以被覆盖,被写入,被赋值,每个变量必须要有一个名字和它所在内存空间绑定。变量的三大特

2016-07-13 23:09:02 659

原创 C语言数据类型(二)——数据类型重要知识点

一.字节长度bit、字节(B)=8bit、半字=2个字节=16bit、字=4个字节=32bit1.  计算机存储方式int num = 5;int *p = &num;int **p = &p;1.  如何测量变量的字节长度int num = 5;sizeof(num)或sizeof num或sizeof(int)但不能写成sizeof intsizeo

2016-07-12 23:04:03 736

原创 C语言数据类型(一)——基本知识点

一.什么是数据类型?数据集合的划分,不同数据类型对CPU意义是不一样的二.数据类型有哪些?如何定义变量?*一个整型数 int a;整型变量*一个指向整型数的指针 int*a;整形指针变量*一个指向指针的指针,它指向的指针是指向一个整型数的 int **a;整型指针的指针变量*一个有10个整型数的数组 int a[10];整型数组*一个有10个

2016-07-12 23:01:42 488

转载 关于面向对象与面向过程(面向结构)的区分

面向对象和结构化方法的比较 最近又有客户问起结构化方法(即结构化分析SA Structured Analysis 和结构化设计SD Structured Design)和面向对象分析设计(OOAD Object-Oriented Analysis & Design)方法的区别,这是一个很多人谈了很多遍的问题,Google一下就可以找到很多以此为标题的文章。OO技术发展了很多年了,现

2016-07-11 15:19:03 626

转载 C语言良好的编码规范

华为C语言编程规范_百度文库 http://wenku.baidu.com/view/38785d3610a6f524ccbf85c5.html?re=view头文件:1.头文件中适合放置接口的声明,不适合放置实现。2.头文件应向稳定的方向包含,产品依赖于平台,平台依赖于标准库。3. .c/.h文件禁止包含用不到的头文件。4.每一个.c文

2016-07-11 15:07:31 1810

原创 C语言标准

C语言标准参考手册:http://wenku.baidu.com/link?url=LdzMmIK62OE5uCeqRumZ1PXCFSTStbjOhUxYFC6CY6wQBD7SQkZIFm25t4chG6wnJctn4Xo53mbG5_6eE0VSSub22HNEy4FFVJSYbwND-FmK&R C  1978年,丹尼斯•里奇(Dennis Ritchie)和布莱恩•柯林汉

2016-07-11 14:51:46 438

转载 C语言之父丹尼斯·里奇

丹尼斯·里奇具体介绍网址:http://baike.baidu.com/view/6648356.htm?qq-pf-to=pcqq.c2c#1人们对里奇的纪念,远不及对乔布斯铺天盖地的悼念。可是,里奇值得人们那样去做。  还是有人出来说了句公道话。  “史蒂夫·乔布斯去世引发了巨大的反响,这当然合情合理。即便影响实际上更为广泛,丹尼斯却不为公众所知”,罗伯·派克说。罗伯是一名

2016-07-11 14:41:46 5034

原创 C语言概述

一.嵌入式开发中为什么选择C语言(C语言久盛不衰的主要原因)?操作系统内核都是用C语言实现的。那为什么操作系统内核都是用C语言实现呢?1.      C语言特点*C语言有出色的移植性,能在不同体系结构的软/硬件平台上运行。(修改的地方越少移植性越好)什么是代码移植性?如何提高代码移植性?可移植性并不是指所写的程序不作修改就可以在任何计算机上运行,而是指当条件有变化时,程序无

2016-07-11 14:19:08 470

原创 工程管理器make

一.工程管理器make的简介1. 为什么需要工程管理?作用是什么?  需要工程管理的原因:      源文件越多,gcc命令行会越长;编译规则会加大gcc命令行的复杂度;      使用gcc命令行编译程序时,会把没有修改的源程序再编译一次,影响编译效率。  作用:      提高编译程序的效率2. 什么是自动编译?时间戳?  自动编译:在整个编译过程中无需人工干预

2016-07-11 11:00:49 896

原创 嵌入式LINUX调试器GDB

一.调试器gdb简介(功能)gdb是GNU发布的一款功能强大的程序调试工具。功能:启动被调试程序;      让被调试的程序在指定的位置停住(设置断点);      当程序被停住时,可以检查程序状态。二.调试器gdb的使用1. gcc –gdemo.c –o demogdb demo2. run  启动被调试程序list 显示程序内容gdb中通过list

2016-07-11 10:49:55 555

原创 嵌入式Linux编译器gcc

一.GCC简介gcc 又是一个交叉平台编译器,它能够在当前平台上为多种不同体系结构的硬件平台开发软件。任意一款处理器都有自己的汇编语言,生成的机器码只能被自身的CPU识别。arm-linux-gcc test.c –o test  此时linux平台下运行的代码可在arm平台上运行1.  什么是GNU计划?一种开源和自由软件的计划。(GNU is notUNIX.)2. 

2016-07-09 16:39:23 686

转载 elf文件格式与动态链接库

机器执行的是机器指令,而机器指令就是一堆二进制的数字。高级语言编写的程序之所以可以在不同的机器上移植就因为有为不同机器设计的编译器的存在。高级语言的编译器就是把高级语言写的程序转换成某个机器能直接执行的二进制代码。以上的知识在我们学习CS(Computer Science)的初期,老师都会这么对我们讲。但是我就产生疑问了:既然机器都是执行的二进制代码,那么是不是说只要硬件相互兼容,不同操作系统下的

2016-07-09 11:27:38 486

原创 vmtools的安装教程与共享文件的创建

如果大家打算在VMware虚拟机中安装Linux的话,那么在完成Linux的安装后,如果没有安装Vm-Tools的话,一部分功能将得不到充分应用,如显卡,鼠标不能够在虚拟机和物理机间自由移动等功能。如果是在Vmware中安装windows系统的话,安装Vmware-Tools是非常简单的,只要按如下照步骤执行:让后打开系统的我的电脑下的光驱运行安装程序即可自动安装Vmw

2016-07-09 09:21:09 699

原创 嵌入式Linux开发环境

一.嵌入式Linux开发环境的安装(一).Linux操作系统简介Linux是一种可以免费使用和自由传播的操作系统。Linux操作系统是由全球许多程序员设计实现的。Linux的目的是创建不受商品化软件的版权制约,所有人都能自由使用、复制、修改、发行。Linux是一个日渐成熟的操作系统,由于其安全、高效、免费等特点,使得Linux被越来越多人了解和使用。              1. L

2016-07-09 08:46:39 815

原创 Redhat安装教程

(安装小红帽虚拟机的过程较为复杂,中途出现的问题对于新手而言也比较麻烦,所以大部分人对于虚拟机的安装更乐意请有经验的人来帮忙,很少愿意自己动手。但是,没有尝试,又哪里来的成长呢?)下面我对于安装小红帽进行文字说明(部分有配图)(注意:未提到的部分步骤皆为下一步或选择是,没有重点摘出来的步骤都不难,自己阅读可以看懂。)1、安装虚拟机,下面三项是必不可少的1、第一个是新建虚拟机时添

2016-07-07 15:47:57 1180

原创 chmod使用方法

指令名称 : chmod使用权限 : 所有使用者使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。参数 : mode : 权限设定字串,格式如下 :[ugoa...][[+-=][rw

2016-07-07 15:25:27 494

原创 vi/vim命令大全

vi/vim的区别简单点来说,它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令。由于对U

2016-07-07 15:17:51 555

原创 嵌入式概述

1.   嵌入式开发      在已有的硬件平台上移植操作系统之后,做相应的开发(系统软件+应用软件开发)。2.   设备平台      硬件平台:CPU(51,avr,ARM(手机处理器)(ARM7(stem32),ARM9(2440,2451),ARM11(6410)),                        cotex-A,mips,PowerPC,DSP,x86(电

2016-07-07 10:11:46 748

原创 C程序的坎坷人生

C语言的一生可谓此起彼伏,千变万化。    一个.c文件转换成可执行文件大概需要四个阶段:        第一步    预处理    gcc  -E  test.c   -o   test.i  //生成预编译处理文件        第二步    编译       gcc  -S   test.i   -o   test.s  //生成汇编文件        第三步    汇编

2016-07-06 23:39:03 466

C++实现一致性hash算法

一致性hash应用于负载均衡算法,本实现由C++语言开发。  一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义: 1、平衡性(Balance)2、单调性(Monotonicity) 3、分散性(Spread)4、负载(Load)

2019-01-03

软件设计师大量视频百度云链接

软件设计师大量视频百度云链接,下载后如果链接失效,评论回复一下,我重新发,谢谢

2017-04-21

软考软件设计师复习资料

软考 软件设计师 资料: 软件设计师全真模拟试题 软件设计师考试考点分析与真题详解(计算机与软件工程知识篇)操作系统资料 软件设计师考试辅导 (考点精讲例题分析强化训练)冶金工业出版社 软件设计师教程

2017-04-21

虚拟机下安装ubantu、网络配置、安装搜狗输入法以及eclipse

虚拟机下安装ubantu、网络配置、安装搜狗输入法以及eclipse

2017-03-14

支持向量机导论

没有学过机器语言,不用担心,本文章可以让你很快理解SVM支持向量机。

2017-03-02

空空如也

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

TA关注的人

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