自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一万HOURS的知识库

从模仿别人开始 + 持续学习 --> 一万小时 --> 构建自己的知识库 --> 热爱技术

  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 单片机控制第一个外设-LED灯

1 单片机编程的一般步骤(1)目标分析。我们的目标是点亮开发板上的LED灯。(2)原理图分析:目标器件(LED)工作原理相关模块电路连接控制线路分析:相关IO端口是哪些?(3)代码编写、编译。(4)下载与调试。2 原理图与控制方法分析2.1 原理图概况浏览(1)目的1:把原理图的相关部分摘录出来重点看。(2)目的2:把相关部分的原理图的关键部分(74573芯片)重点看。2.2 74HC573

2017-12-31 11:48:02 1830

原创 函数的意义

1 C语言中的函数函数的由来2 函数的意义模块化程序设计C语言中的模块化3 面向过程的程序设计面向过程是一种以过程为中心的编程思想。首先将复杂的问题分解为一个个容易解决的问题。分解过后的问题可以按照步骤一步步完成。函数是面向过程在C语言中的体现。解决问题的每个步骤可以用函数来实现。4 声明和定义声明的意义在于告诉编译器程序单元的存在。定义则明确指示程序单元的意义。C语言通过exte

2017-12-31 11:23:39 1740

原创 内存操作经典问题分析

1 野指针1.1 野指针的概念指针变量中的值是非法的内存地址,进而形成野指针。野指针不是NULL指针,是指向不可用内存地址的指针。NULL指针并无危害,很好判断,也很好调试。C语言中无法判断一个指针所保存的地址是否合法。1.2 野指针的由来局部指针变量没有被初始化。指针所指向的变量在指针之前被销毁(返回局部变量和局部数组)。使用已经释放过的指针。进行了错误的指针运算。进行了错误的

2017-12-28 17:24:19 196

原创 linux的命令概述

1 命令格式及帮助1.1 命令格式命令一般由三个部分组成: 命令 :命令本身选项 :命令操作的参数 (可省略)参数 :命令操作的对象 (可省略)示例:ls –l /home 其中‘ls’为命令本身 ,‘-l’是选项,‘/home’参数; 命令可以有多个选项,组合使用:例:ls –a和ls –l 可以写成ls –al1.2 命令帮助help 一般命令都具有 ‘-h’或‘—-help’选

2017-12-28 16:43:04 191

原创 S5PV210的时钟系统

1 SoC时钟系统简介1.1 什么是时钟?SoC为什么需要时钟?(1)时钟是同步工作系统的同步节拍。(2)SoC内部有很多器件,譬如CPU、串口控制器、DRAM控制器、GPIO等内部外设,这些东西要彼此协同工作,需要一个同步的时钟系统来指挥。这个就是我们SoC的时钟系统。1.2 时钟一般如何获得(1)SoC的时钟获得一般有:   外部直接输入时钟信号,SoC有个引脚用来输入外部时钟信号,用的很少。

2017-12-28 11:48:56 612

原创 动手写代码之前必须的准备工作

1 Keil软件的介绍和安装1.1 IDE概念(1)IDE就是集成开发环境,就是一套用来开发的完整的软件系统。1.2 Keil uvision介绍(1)发展。(2)版本 1.2、1.3、1.4、1.5,本课程使用1.4版本。(3)安装包在哪里: 网络下载、开发板光盘。1.3 安装和破解安装破解,十分简单。1.4 Keil和MDK(1)本来只能用来开发51单片机,叫Keil。(2)后来ARM公司收购

2017-12-27 17:59:14 1993

原创 栈、堆、静态存储区和程序的内存布局

1 栈1.1 程序中的栈栈是现代计算机程序里最重要的概念之一。栈在程序中用于维护函数调用上下文。函数中的参数和局部变量存储在栈上。栈是一种后进先出的行为。1.2 函数调用过程栈保存了一个函数调用所需的维护信息:参数、返回地址、局部变量、调用上下文、……每次函数调用都对应着一个栈上的活动记录。调用函数的活动记录位于栈的中部。被调函数的活动记录位于栈的顶部。函数调用栈变化这里返回地址描

2017-12-26 20:22:53 797

原创 动态内存分配

1 动态内存分配的意义C语言中的一切操作都是基于内存的。变量和数组都是内存的别名: 内存分配由编译器在编译期间决定;定义数组的时候必须指定数组长度;数组长度是在编译期就必须确定的。需求:程序运行的过程中,可能需要使用一些额外的内存空间。2 malloc和freemalloc和free用于执行动态内存分配和释放。malloc所分配的是一块连续的内存(不会对内存进行初始化)。malloc

2017-12-25 20:31:22 366

原创 玩转你的开发板

1 开发板完全介绍1.1 版本(1)课程以V3.0(高配)为准,兼容V2.2。1.2 配件(1)连同开发板主板共12件,分别是:光盘1张、主板1个、杜邦线1卷、晶振和跳线帽1包、USB线1条、步进电机1个、直流电机1个、红外遥控器1个、1602屏1个、12864屏1个、2.2/2.4寸TFT触摸彩屏1个、STM32核心板1个。(2)光盘如果读不出可以到网盘下载。(3)小零件较多,不要弄丢了。(4)跳

2017-12-25 08:26:45 1033

原创 单片机有很多种

1 51单片机发展史1.1 51单片机由Intel公司设计诞生(1)1971年,Intel推出4位单片机Intel4004。(2)1972年,Intel推出8位单片机Intel8008。(3)期间还有别的公司如Motorola、Zilog等推出各自的单片机系列。(4)80年代初,Intel推出MCS-51系列单片机(即Intel8051)。(5)后来Intel继续做了16位8085、8086等,再后

2017-12-23 19:24:36 1045

原创 指针阅读技巧分析

1 笔试中的问题下面的标识符代表什么含义?2 指针阅读技巧解析右左法则:从最里层的圆括号中未定义的标示符看起。首先往右看,再往左看。遇到圆括号或方括号时可以确定部分类型,并调转方向。重复2,3步骤,直到阅读结束。编程实验:复杂指针的阅读#include <stdio.h>int main(){ int (*p)(int); //==>p为指针,指向函数,指向的函数有一个

2017-12-22 16:08:42 278

原创 函数与指针分析

1 函数类型(1)C语言中的函数有自己特定的类型。(2)函数的类型由返回值,参数类型和参数个数共同决定。 int add(int j, int k)的类型为int(int, int)。(3)C语言中通过typedef为函数类型重命名。 typedef type name(parameter list)。例: typedef int f(int, int); typedef void p(in

2017-12-22 11:37:01 221

原创 汇编初始化SDRAM

1 SDRAM引入1.1 SDRAM和DDR基本概念SDRAM:Syncronized Dynamic Ramdam Access Memory,同步动态随机存储器。DDR:DDR就是DDR SDRAM,是SDRAM的升级版。(DDR:Double Data Rate双倍速率同步动态随机存储器,双倍速度的SDRAM)DDR有好多代:DDR1、DDR2、DDR3、DDR4、LPDDR。1.2 SDRA

2017-12-21 11:14:44 1251

原创 数组参数和指针参数分析

1 思考为什么C语言中的数组参数会退化为指针?2 退化的意义C语言中只会以值拷贝的方式传递参数。当向函数传递数组时由如下两种实现方式:将整个数组拷贝一份传入函数;将数组名看作常量指针传数组首元素地址(C语言采用的方式)。C语言以高效作为最初设计目标:参数传递的时候如果拷贝整个数组执行效率将大大下降。参数位于栈上,太大的数组拷贝将导致栈溢出。3 二维数组参数二维数组参数同样存在退化的问题

2017-12-21 09:59:07 270

原创 单片机到底是个什么东西

1 从电路到集成电路1.1 电路发展变化的趋势(1)功率。电子设备越来越省电,待机时间越来越长,工作电压越来越低。(2)体积。体积越来越小。(3)功能。功能越来越强大。1.2 微器件的出现(1)电路的核心:开关控制、倍率控制。(2)电子管、晶体管等。1.3 集成电路的出现(1)IC(integrated circuit,集成电路),就是使用微器件为积木,去搭建具备一定功能的一个电路板。(2)以前没有

2017-12-21 08:06:16 18057 1

原创 linux的系统环境安装

1 磁盘分区1.1 磁盘分区的基本概念定义:计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。磁盘分区的意义:查询性能提升数据安全的保护磁盘分区的工具:fdiskpqmagic Linux分区:至少有两个分区‘/’和‘SWAP’分区;安装好系统后,可使用‘fdisk’进行磁盘管理。1.2 磁盘分区的种类主分区

2017-12-20 20:57:42 279

原创 linux的文件资源管理

1 Linux的层次结构1) kernel:内核层,最底层; 2)系统层 :在kernel层之上,是系统程序和运行期库文件位置; 3)shell层 :人机交互层,在系统层之上,开发者通过shell向内核发送指令; 4)实用工具层:日常使用的工具,例如浏览器等。2 文件类型和文件系统类型1) Linux默认文件系统类型:EXT3、EXT4; 2) Windows默认文件系统类型:NTFS、FA

2017-12-20 19:20:28 426

原创 多维数组和多维指针

1 指向指针的指针指针的本质是变量。指针会占用一定的内存空间。可以定义指针的指针来保存指针变量的地址值。 例如:int main(){ int a = 0; int *p = NULL; int **pp = NULL; pp = &p; *pp = &a; return 0;}2 问题:为什么需要指向指针的指针?指针在本质上也是变量。

2017-12-19 15:41:09 232

原创 单片机相关的基础知识

1 为什么要学单片机1.1 单片机和CPU有什么区别(1)CPU (2)单片机 (3)application SoC (4)FPGA&DSP&CPLD1.2 全球用量最大的CPU1.3 物联网节点设备主控CPU1.4 单片机是其他物联网编程技术的入门基础1.5 通过学习单片机学习编程语言、调试技巧、工具使用等技能

2017-12-19 10:57:46 503

原创 linux渊源及发展

1 Unix的起源及发展Unix是较早被广泛使用的计算机操作系统之一,它的第一版于1969年由Ken Thompson在AT&T贝尔实验室实现,1973年Ken Thompson与Dennis Ritchie用C语言重写了Unix的第三版内核。1969年,Unix系统的第一个版本(由Ken Thompson在AT&T贝尔实验室实现)20世纪70年代末:AT&T成立Unix系统实验室20世纪70

2017-12-19 10:33:11 341

原创 重定位引入和链接脚本

1 一个事实:大部分指令是位置有关编码位置无关编码(PIC,position independent code):汇编源文件被编码成二进制可执行程序时编码方式与位置(内存地址)无关。 位置有关编码:汇编源码编码成二进制可执行程序后和内存地址是有关的。我们在设计一个程序时,会给这个程序指定一个运行地址(链接地址)。就是说我们在编译程序时其实心里是知道我们程序将来被运行时的地址(运行地址)的,而且必须

2017-12-03 09:05:26 796

原创 汇编写启动代码之开iCache

1 什么是cache,有什么用cache是一种内存,叫高速缓存。从容量来说:CPU < 寄存器 < cache < DDR 从速度来说:CPU > 寄存器 > cache > DDRcache的存在,是因为寄存器和ddr之间速度差异太大,ddr的速度远不能满足寄存器的需要(不能满足cpu的需要,所以没有cache会拉低整个系统的整体速度)。整个系统中CPU的供应链由:寄存器+cache+DDR+

2017-12-02 21:36:09 689

原创 main函数与命令行参数

1 main函数的概念C语言中main函数称之为主函数。一个程序是从main函数开始执行的。下面的main函数定义正确吗?main(){}void main(){}int main(){}int main(){return 0;}2 main函数的本质main函数是操作系统调用的函数。操作系统总是将main函数作为应用程序的开始。操作系统将main函数的返回值作为程序的退出状态

2017-12-02 21:02:02 507

原创 数组指针和指针数组分析

1 思考下面这些声明合法吗? int array[5]; int matrix[3][3]; int *pa = array; int *pm = matrix;问题: array代表数组首元素的地址,那么matrix代表什么? array和&array的地址值相同,但是意义不同,那么它们所代表的类型相同吗?2 数组类型C语言中的数组有自己特定的类型。数组的类型由元素和数组大小共同决

2017-12-02 17:50:38 258

原创 汇编写启动代码之设置栈和调用C语言

1 C语言运行时需要和栈的意义“C语言运行时(runtime)”需要一定的条件,这些条件由汇编来提供。C语言运行时主要是需要栈。C语言与栈的关系:C语言中的局部变量都是用栈来实现的。如果我们汇编部分没有给C部分预先设置合理合法的栈地址,那么C代码中定义的局部变量就会落空,整个程序就死掉了。我们平时在编写单片机程序(譬如51单片机)或者编写应用程序时并没有去设置栈,但是C程序还是可以运行的。原因是:在

2017-12-02 16:37:46 597

原创 汇编写启动代码之关看门狗

1 什么是看门狗?看门狗(watch dog timer 看门狗定时器)。大家想象这样一个场景:家门口有一只狗,这个狗定时会饿(譬如说2小时一饿),够饿了会胡乱咬死人。人进进出出要想保证安全必须提前喂狗(必须在上次喂过后的2小时内喂狗才行)。如果超时没喂狗就会被咬死,如果提前喂狗没关系,但是本次喂狗时间就会从这里开始计算。现实中因为一些外部因素,电子设备经常会跑飞或者死机(譬如极端炎热、极端寒冷、工

2017-12-02 10:53:42 785

嵌入式实时操作系统ucos2

这本书看了挺久,今天终于看完了!可以说是ucos2相关著作的经典之作,核心原理讲的很清楚,文中许多地方都提到了为什么要这么设计。毕竟这本书出自ucos2作者之手。 看完前12章之后,本打算继续看后面的移植部分,发现后面是基于古老的80x86机器的移植,果断放弃,本来对这种处理器就不熟悉,这无疑增加了学习难度。重点是学习ucos2如何使用,深入学习ucos2是如何设计的,就不去管移植部分了,现在ucos2多用于单片机上,所以后面的放弃。 学习ucos,这本书必看!只看前300页就足够了。 注意: 1.书签是我在阅读的过程中手动添加上去的,第12章以后是没有书签的。 2.此书比较古老,所以不是蛮清晰,不过为了学习相关知识,我是忍了!终于看完了,哈哈!

2018-06-09

c语言深度剖析(完美高清文字版pdf)

第一章 关键字................................................................................................................................... 9 1.1,最宽恒大量的关键字----auto..........................................................................................11 1.2,最快的关键字---- register............................................................................................... 11 1.2.1,皇帝身边的小太监----寄存器............................................................................. 11 1.2.2,使用 register 修饰符的注意点.............. ...............................................................11 1.3,最名不符实的关键字----static........................................................................................12 1.3.1,修饰变量...............................................................................................................12 1.3.2,修饰函数...............................................................................................................13 1.4,基本数据类型----short、int、long、char、float、double........................................... 13 1.4.1,数据类型与“模子”............................................................................................... 14 1.4.2,变量的命名规则...................................................................................................14 1.5,最冤枉的关键字----sizeof...............................................................................................18 1.5.1,常年被人误认为函数...........................................................................................18 1.5.2,sizeof(int)*p 表示什么意思?........................................................................18 1.4,signed、unsigned 关键字................................................................................................19 1.6,if、else 组合.................................................................................................................... 20 1.6.1,bool 变量与“零值”进行比较...............................................................................20 1.6.2, float 变量与“零值”进行比较.................................................................................21 1.6.3,指针变量与“零值”进行比较............................................................................... 21 1.6.4,else 到底与哪个 if 配对呢?...............................................................................22 1.6.5,if 语句后面的分号............................................................................................... 23 1.6.6,使用 if 语句的其他注意事项.............................................................................. 24 1.7,switch、case 组合........................................................................................................... 24 1.7.1,不要拿青龙偃月刀去削苹果.............................................................................. 24 1.7.2,case 关键字后面的值有什么要求吗?.............................................................. 25 1.7.3,case 语句的排列顺序...........................................................................................25 1.7.4,使用 case 语句的其他注意事项..........................................................................27 1.8,do、while、for 关键字................................................................................................... 28 1.8.1,break 与 continue 的区别.....................................................................................28 1.8.2,循环语句的注意点...............................................................................................29 1.9,goto 关键字......................................................................................................................30 1.10,void 关键字....................................................................................................................31 1.10.1,void a?............................................................................................................31 1.10,return 关键字................................................................................................................. 34 1.11,const 关键字也许该被替换为 readolny....................................................................... 34 1.11.2,节省空间,避免不必要的内存分配,同时提高效率.................................... 35 1.12,最易变的关键字----volatile.......................................................................................... 36 1.13,最会带帽子的关键字----extern.................................................................................... 37 1.14,struct 关键字.................................................................................................................. 38 1.14.1,空结构体多大?.................................................................................................38 1.14.2,柔性数组.............................................................................................................39 1.14.3,struct 与 class 的区别......................................................................................... 40 1.15,union 关键字..................................................................................................................40 1.15.1,大小端模式对 union 类型数据的影响............................................................. 40 1.15.2,如何用程序确认当前系统的存储模式?........................................................ 41 1.16,enum 关键字.................................................................................................................. 42 1.16.1, 枚举类型的使用方法..........................................................................................43 1.16.2,枚举与#define 宏的区别....................................................................................43 1.17,伟大的缝纫师----typedef 关键字................................................................................. 44 1.17.1,关于马甲的笑话.................................................................................................44 1.17.2,历史的误会----也许应该是 typerename........................................................... 44 1.17.3,typedef 与#define 的区别...................................................................................45 1.17.4,#define a int[10]与 typedef int a[10];.............................................................. 46 第二章 符号..................................................................................................................................... 49 2.1,注释符号..........................................................................................................................50 2.1.1,几个似非而是的注释问题...................................................................................50 2.1.2,y = x/*p................................................................................................................. 51 2.1.3,怎样才能写出出色的注释...................................................................................51 2.1.3.1,安息吧,路德维希.凡.贝多芬................................................................. 51 2.1.3.2,windows 大师们用注释讨论天气问题....................................................51 2.1.3.3,出色注释的基本要求............................................................................... 52 2.2,接续符和转义符..............................................................................................................53 2.3,单引号、双引号..............................................................................................................54 2.4,逻辑运算符......................................................................................................................54 2.5,位运算符..........................................................................................................................55 2.5.1,左移和右移...........................................................................................................55 2.5.2,0x01<<2+3 的值为多少?...................................................................................55 2.6,花括号.............................................................................................................................. 56 2.7,++、--操作符...................................................................................................................56 2.7.1,++i+++i+++i......................................................................................................... 57 2.7.2,贪心法...................................................................................................................57 2.8,2/(-2)的值是多少?.........................................................................................................58 2.9,运算符的优先级..............................................................................................................58 2.9.1, 运算符的优先级表................................................................................................58 2.9.2,一些容易出错的优先级问题.............................................................................. 60 第三章 预处理................................................................................................................................. 61 3.1,宏定义.............................................................................................................................. 62 3.1.1,数值宏常量...........................................................................................................62 3.1.2,字符串宏常量.......................................................................................................62 3.1.3,用 define 宏定义注释符号?.............................................................................. 63 3.1.4,用 define 宏定义表达式.......................................................................................63 3.1.5,宏定义中的空格...................................................................................................64 3.1.6,#undef....................................................................................................................64 3.2,条件编译..........................................................................................................................65 3.3,文件包含..........................................................................................................................66 3.4,#error 预处理................................................................................................................... 66 3.5,#line 预处理.....................................................................................................................67 3.6,#pragma 预处理...............................................................................................................67 3.6.8,#pragma pack........................................................................................................ 69 3.6.8.1,为什么会有内存对齐?........................................................................... 70 3.6.8.2,如何避免内存对齐的影响....................................................................... 70 3.7, #运算符.............................................................................................................................. 72 3.8,##预算符..........................................................................................................................72 第四章 指针和数组.........................................................................................................................74 4.1,指针.................................................................................................................................. 74 4.1.1,指针的内存布局...................................................................................................74 4.1.2,“*”与防盗门的钥匙............................................................................................. 75 4.1.3,int *p = NULL 和*p = NULL 有什么区别?.................................................... 75 4.1.4,如何将数值存储到指定的内存地址.................................................................. 76 4.1.5,编译器的 bug?....................................................................................................77 4.1.6,如何达到手中无剑、胸中也无剑的地步.......................................................... 78 4.2,数组.................................................................................................................................. 78 4.2.1,数组的内存布局...................................................................................................78 4.2.3,数组名 a 作为左值和右值的区别.......................................................................79 4.3,指针与数组之间的恩恩怨怨..........................................................................................80 4.3.1,以指针的形式访问和以下标的形式访问.......................................................... 80 4.3.1.1,以指针的形式访问和以下标的形式访问指针....................................... 81 4.3.1.2,以指针的形式访问和以下标的形式访问数组....................................... 81 4.3.2,a 和&a 的区别...................................................................................................... 81 4.3.3,指针和数组的定义与声明...................................................................................83 4.3.3.1,定义为数组,声明为指针....................................................................... 83 4.3.3.2,定义为指针,声明为数组....................................................................... 85 4.3.4,指针和数组的对比...............................................................................................85 4.4,指针数组和数组指针......................................................................................................86 4.4.1,指针数组和数组指针的内存布局...................................................................... 86 4.4.3,再论 a 和&a 之间的区别.....................................................................................87 4.4.4,地址的强制转换...................................................................................................88 4.5,多维数组与多级指针......................................................................................................90 4.5.1,二维数组...............................................................................................................91 4.5.1.1,假想中的二维数组布局........................................................................... 91 4.5.1.2,内存与尺子的对比....................................................................................91 4.5.1.3,&p[4][2] - &a[4][2]的值为多少?........................................................... 92 4.5.2,二级指针...............................................................................................................93 4.5.2.1,二级指针的内存布局............................................................................... 93 4.6,数组参数与指针参数......................................................................................................94 4.6.1,一维数组参数.......................................................................................................94 4.6.1.1,能否向函数传递一个数组?................................................................... 94 4.6.1.2,无法向函数传递一个数组....................................................................... 96 4.6.2,一级指针参数.......................................................................................................97 4.6.2.1,能否把指针变量本身传递给一个函数................................................... 97 4.6.2.2,无法把指针变量本身传递给一个函数................................................... 98 4.6.3,二维数组参数与二维指针参数.......................................................................... 99 4.7,函数指针........................................................................................................................100 4.7.1,函数指针的定义.................................................................................................100 4.7.2,函数指针的使用.................................................................................................101 4.7.2.1,函数指针使用的例子............................................................................. 101 4.2.7.2,*(int*)&p ----这是什么?....................................................................... 102 4.7.3,(*(void(*) ())0)()------这是什么?..................................................................... 102 4.7.4,函数指针数组.....................................................................................................103 4.7.5,函数指针数组的指针.........................................................................................104 第五章 内存管理...........................................................................................................................107 5.1,什么是野指针................................................................................................................107 5.2,栈、堆和静态区............................................................................................................107 5.3,常见的内存错误及对策................................................................................................108 5.3.1,指针没有指向一块合法的内存........................................................................ 108 5.3.1.1,结构体成员指针未初始化..................................................................... 108 5.3.1.2,没有为结构体指针分配足够的内存..................................................... 109 5.3.1.3,函数的入口校验......................................................................................109 5.3.2,为指针分配的内存太小.....................................................................................110 5.3.3,内存分配成功,但并未初始化.........................................................................110 5.3.4,内存越界............................................................................................................. 111 5.3.5,内存泄漏............................................................................................................. 111 5.3.5.1,告老还乡求良田......................................................................................112 5.3.5.2,如何使用 malloc 函数.............................................................................112 5.3.5.3,用 malloc 函数申请 0 字节内存.............................................................113 5.3.5.4,内存释放..................................................................................................113 5.3.5.5,内存释放之后..........................................................................................114 5.3.6,内存已经被释放了,但是继续通过指针来使用............................................ 114 第六章 函数................................................................................................................................... 115 6.1,函数的由来与好处........................................................................................................116 6.2,编码风格........................................................................................................................ 116 6.2,函数设计的一般原则和技巧...........................................................................................121 6.4,函数递归........................................................................................................................123 6.4.1,一个简单但易出错的递归例子........................................................................ 123 6.4.2,不使用任何变量编写 strlen 函数......................................................................124 第七章 文件结构.........................................................................................................................127 7.1,文件内容的一般规则....................................................................................................127 7.2,文件名命名的规则........................................................................................................130

2018-05-21

图解TCP/IP

编辑推荐   TCP/IP圣经级教材   268张图解轻松入门   这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。   《图解TCP/IP》中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,引导读者了解和掌握TCP/IP,营造一个安全的、使用放心的网络环境。   《图解TCP/IP》适合计算机网络的开发、管理人员阅读,也可作为大专院校相关专业的教学参考书。 内容简介   《图灵程序设计丛书:图解TCP/IP(第5版)》是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。   书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,引导读者了解和掌握TCP/IP,营造一个安全的、使用放心的网络环境。   《图灵程序设计丛书:图解TCP/IP(第5版)》适合计算机网络的开发、管理人员阅读,也可作为大专院校相关专业的教学参考书。 绝对完整!高清!可以放心下载!

2018-05-21

空空如也

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

TA关注的人

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