自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (99)
  • 收藏
  • 关注

原创 WIN10 64位版本下如何解决 PL232串口驱动安装失败的情况

      做研发,搭建编译环境有时候是个讲究运气的活,运气不好,环境就容易搭建失败,折腾人。嵌入式开发的兄弟们离不开PL232串口,因为需要经常通过串口将调试信息输出到PC端的串口调试助手中。现在WINDOWS系统均已经更新到WIN10操作系统,但是PL232的驱动在WIN10下的兼容性不太好。折腾了很久终于将串口驱动成功的安装在WIN10下,并且正常使用。         第一步:下载一个...

2018-09-26 08:16:58 8598

原创 如何在LINUX内核中添加模块--实验环境READ HAT LINUX 5.0

由于LINUX设备驱动以内核模块的形式而存在,因此,掌握这一章的内容是编写任何类型设备驱动所必须的。在具体的设备驱动开发中,将驱动编译为内核模块也有很强的工程意义,因为如果将正在开发中的驱动直接编译入内核,而开发过程中会不断修改驱动的代码,则需要不断地编译内核并重启内核,但是如果编译为模块,则只需要rmmod并insmod即可,开发效率大为提高。下面说明如何添加、编译并允许LINUX模块。

2012-05-25 21:45:19 3921

原创 LINUX内核编译方法以及其步骤(在READ HAT LINUX 5.0上面运行成功)

第一步:下载LINUX内核源代码(网址:http://www.kernel.org/)第二步:部署内核源代码到LINUX系统的相关目录下。               启动LINUX系统,打开终端界面,更改用于权限为root用户权限。具体做法是在终端输入 su,然后输入密码。然后将下载下来的LINUX内核源代码,移动到如下的目录                     中,/usr

2012-05-20 16:36:25 2009

转载 详解大端模式和小端模式

详解大端模式和小端模式一、大端模式和小端模式的起源        关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令

2012-03-05 21:54:46 1175

转载 ADS1.2进行嵌入式软件开发(ZT)

ADS1.2进行嵌入式软件开发(ZT) 概述      嵌入式应用程序通常都是在样机环境下调试与开发的,这种环境与最终产品之间并不完全相同。因此,在系统调试阶段就考虑应用程序在最终目标硬件中的运行情况是非常重要的。     本文旨在讨论怎么将一个开发/调试环境下的嵌入式应用程序转移到最终独立运行的目标系统中去,并提到了ARM ADS1.2开发工具包的一些功能特性及其在这个过程中

2011-11-07 17:41:36 903

转载 MTK内存动态申请释放

MTK内存动态申请释放1. OslMalloc OslMfree 为一个般的程序分配内存,用来保存一般性的数据,效率高,不能分配太大内存,否则程序会挂掉  这两个函数就是直接define 的 ctrl buffer的函数 作用分配内存和malloc free功能类似   实际上是用一块内存池中分配和释放内存,具体实现是在ctrl_buff_pool.c里面做的

2011-11-03 11:37:02 922

原创 C语言编程经验总结1 --- 如何让数组的定义更具扩展型

例子:         typedef enum{ BIG_5_ENCODING_TYPE, GB2312_ENCODING_TYPE, HKSCS_ENCODING_TYPE, NO_OF_TEXT_ENCODING,}TextEncodingEnum;const kal_uint8 *g_ucs2_to_enco

2011-11-01 11:25:57 989

转载 ARM的空间属性

ARM的空间属性  1. 程序的空间属性一般情况下,一个程序本质上都是由 bss段、data段、text段三个组成的——本概念是当前的计算机程序设计中是很重要的一个基本概念。而且在嵌入式系统的设计中也非常重要,牵涉到嵌入式系统运行时的内存大小分配,存储单元占用空间大小的问题。BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是

2011-10-19 22:16:48 2485

转载 MTK 平台获取IMSI号码 以及如何截获系统中的各种消息

MTK平台 获取本机的SIM卡中IMSI号       公司MTK平台做开发,老板要求在MTK的代码上获得本机上SIM卡的手机号码,查了很多资料后,结果是无法获得,原因是手机号码不是直接存储在SIM卡的,而是信号通过移动商(移动、联通或电信)时绑定的;IMSI是s

2011-10-18 11:08:13 4485

转载 MTK异常LOG深入探讨

MTK异常LOG深入探讨 开篇序言:此篇意在对异常LOG有一个总体上面的了解。异常的LOG有很多信息,但是对不同的异常,需要看的LOG却不一样。刚接触MTK平台之时,我也犯过这样的错误:就是这么多的异常LOG,我应该怎样看?非把自己弄得昏头转向不可。待此篇结束之后,小弟会

2011-10-15 10:07:05 1195

转载 MTK系统错误类型

MTK系统错误类型        系统错误中有两种典型的分类,一种是CPU触发的系统错误,另外一种是软件触发的系统错误。(其实我觉得这两种错误没什么区别。靠!什么叫CPU触发?什么叫软件触发?这两种分类有意义吗?对我们调试有帮助吗?答案是一点帮助都没有!我debug了这么

2011-10-15 09:38:21 1907

转载 MTK异常处理流程

MTK异常处理流程 异常处理流程里面,需要做的事情是:生成异常信息输出到屏幕或catcher中,并保存到NVRAM里面。最后根据工程模式的设定,机器会冻屏(选择冻屏是为了抓memory dump),或者重启。 1、CPU触发的异常处理当CPU触发异常时,会触发

2011-10-15 09:34:34 2513

原创 MTK timer 小结

MTK   timer  小结          MTK  tiemr有很多种,从最底层的KAL到MMI,都有timer的身影。KAL 的 timer         KAL  timer是非常底层的timer,它的实现是直接封装MTK的RTOS(nuleus)的ti

2011-10-13 21:49:37 3711

转载 MTK中gPLMN和gPLMN_2变量解析

MTK中gPLMN和gPLMN_2变量解析PLMN  公众陆地移动通信网,也可快速朗读为“皮儿门”。Public Land Mobile-communication Network 由政府或它所批准的经营者,为公众提供陆地移动通信业务目的而建立和经营的网路。该网路一般与公

2011-10-13 10:47:58 1682

转载 关于pragma pack的用法

关于pragma pack的用法(一)一个很重要的参数#pragma pack(n)数据边界对齐方式:以如下结构为例: struct {                    char a;                    WORD b;

2011-10-05 11:57:45 563

转载 转载 MTK存储系统相关

转载 MTK存储系统相关      NOR和NAND都是flash, 掉电数据不丢失的,掉电数据丢失的叫RAM     flash上分两块,code区域和文件系统区域(又分系统盘和用户盘)。     NVRAM是一套机制,它的数据部分:default存在f

2011-09-26 16:51:04 1180

原创 MTK平台学习----消息通讯机制

一、基础知识        使用消息循环机制之前,我们先来认识几个数据结构         typedef struct ilm_struct            {                    module_type

2011-09-18 21:29:48 4897

原创 MTK平台学习---TASK的创建

MTK平台是非常优秀的一个平台,曾经的山寨机之父,下面我将介绍下在MTK平台下如何去创建自己的任务。一、基础知识        在学习如何创建任务之前,我们需要了解一些基本概念,以及一些和任务相关的数据结构,了解了这些之后,我们就能更好的理解如何去创建任务了。MTK中关于

2011-09-18 10:36:30 3756

原创 单片机学习方法总结

从刚开始接触单片机,到现在已经有4年的时间了,在这期间学习和使用了51单片机、飞思卡尔单片机,LPC2138,PIC16F887等系列的单片机,每接触一款单片机,都会经历熟悉其基本开发,然后将其用于项目中的过程,对于如何学习一款单片机,自己做了如下的总结。

2011-07-25 22:24:11 5320 1

原创 C语言中可变参数的使用

<br />1、在函数中一般都是固定的参数调用,为了实现可变参数调用,需要用到stdarg.h库中声明的几个宏定义。<br />2、定义<br />     在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:<br />     #define _INTSIZEOF(n)   ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) ) <br />     #define va_start(ap,v) ( ap = (va_list)&v +

2011-04-28 15:47:00 906

原创 VxWorks应用程序调试环境的建立

<br />     Vxworks的应用程序一方面可以和内核集成在一起进行调试,另外一个方面也可以将应用程序和内核分开来进行调试,当应用程序无误后再集成到内核中。下面将详细介绍第二种调试方法,这种方法调试最方便。使用这种方法可以不用每次都将应用程序写好,然后和内核一起编译下载到目标机中,只需动态的向目标机中加载应用程序的.o文件即可以对其进行调试,加快了开发的速度。<br />      要想将应用程序和内核分开来进行开发调试,首先必须有一个可以稳定运行VxWorks内核,这里可以使用以前做好了的BSP来

2011-04-27 20:40:00 5323

转载 Visual C++(VC++6.0)编译器常用选项设置

Visual C++(VC++6.0)编译器常用选项设置<br />http://www.52bingcheng.com/2009/10/14/visual_cvc60/<br />编译参数的设置。<br />(一 )主要通过IDE的菜单项Project->Settings->C/C++页来完成。<br />我们可以看到这一页的最下面Project Options中的内容,一般如下:<br />/nologo /MDd /W3 /Gm /GX /ZI /Od /D “WIN32″ /D “_DEBUG” /

2011-04-11 17:36:00 2195

转载 VC++6.0 中calling convention 的__cdecl __fastcall与 __stdcall设置项

<br />          __cdecl __fastcall与 __stdcall __cdecl __fastcall与 __stdcall 调用约定:<br />          __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:<br />   1)函数参数的压栈顺序,<br />   2)由调用者还是被调用者把参数弹出栈,<br />   3)以及产生函数修饰名的方法。 <br />         1、_

2011-04-11 17:20:00 2101

转载 使用Warning Level 4洁净编译应用程序

<br />     <br />     VC开发环境使用Warning level控制警告信息,在VC环境的Project/Setting/C/C++中设置。其中Level 4是最严格的检查级别,Warnings as errors将警告信息当作错误处理。在编译时如果有warning信息输出,则不会影响应用程序的生成,如果有error信息输<br />出则不能生成应用程序。产生warning的语句大多时候不会影响程序的正确执行,但有时候warning语句隐含着错误。将Warning level<br /

2011-04-11 15:15:00 3238

转载 关于MAP文件的使用(转贴)

关于MAP文件的使用(转贴)<br />在看《深入理解计算机系统》的时候总会看到MAP文件,一直不懂,今天看到一片相关的文章,收录下来,大家一起看看吧。毕竟有些时候我们的IDE提示的信息不够明白,使用MAP文件是一个调试的好帮手。<br /><br />仅通过崩溃地址找出源代码的出错行<br /><br />作为程序员,我们平时最担心见到的事情是什么?是内存泄漏?是界面不好看?……错啦!我相信我的看法是不会有人反对的——那就是,程序发生了崩溃!<br /><br />“该程序执行了非法操作,即将关闭。请与你

2011-04-08 15:59:00 895

原创 VC++6.0 中DEBUG模式下如何开启函数内联模式

                                                                        VC++6.0 中DEBUG模式下如何开启函数内联      C++中,为了减少函数频繁调用时所带来的时空开销,提供了一种称为内置函数的功能,内置函数即是将掉用的函数的代码嵌入到调用处,内联函数需要使用inline关键字声明,为了检测内联函数是否替换成功,即在调用处是否用了函数体来代替函数调用,需要在调试模式下查看汇编代码。      下面是一个简单的例子: 编译连

2011-04-07 12:45:00 3117 1

转载 VC++ 6.0 编译器编译期存储器分配模型 (内存布局)

                                                             VC ++ 6.0  编译器编译期存储器分配模型(内存布局)一、内存区域的划分      一个由C/C++编译的程序占用的内存分为以下几个部分:     1)、栈区(Stack):由编译器(Compiler)自动分配释放,存放函数的参数值,局部变的值等。其操作方式类似于数据结构中的栈。     2)、堆区(Heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它

2011-04-02 21:00:00 3594

转载 关于内存中栈和堆的区别[转]

关于内存中栈和堆的区别[转]<br />1、内存分配方面:<br />    堆:一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式是类似于链表。可能用到的关键字如下:new、malloc、delete、free等等。<br />    栈:由编译器(Compiler)自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />2、申请方式方面:<br />    堆:需要程序员自己申请,并指明大小。在c中malloc

2011-04-02 15:20:00 752

原创 LINUX学习之路---入门篇---如何在VM中与主机共享上网

<br />        相信初次使用VMware Workstation安装LINUX虚拟机的人来说,如何设置可以让虚拟机和主机共享上网,是一个头疼的问题,至少我在网上搜索了很多种方法尝试,但是在经历了多次失败后,终于  设置成功了,主机和虚拟机都能上网,下面就将我的设置方法简单的描述下,希望可以对跟我遇到同样问题的人有所帮助。<br />       首先说明下,我的主机上网方式采用的是电信的ADSL拨号上网方式上网的,拨号软件采用的是WINDOWS自带的拨号软件宽带连接拨号上网方式。<br />  

2011-02-19 14:37:00 4479 2

原创 J-LINK调试时出现连接不上目标板

    今天下午调试ARM时,出现了点小故障,连接不上目标板,弄了一个下午问题终于解决了!   问题的描述是这样的,在打开J-LINK GDB Server时,出现了一个错误的对话框  TCK ( pin9 ) low, but should be high. Please check target hardware.如下图所示:        出现这个问题首先怀疑的便是JLINK是不

2010-05-14 19:25:00 25720 2

MS PROJECT培训资料-上半部分-V1.3.pptx

PROJECT项目管理工具软件培训资料,主要讲解了使用PROJECT项目管理过程中的基础资料软件,可供没有基础知识的初学者了解基本的知识。

2020-03-24

vcruntime140.dll

WIN10 64位操作系统 vcruntime140.dll,解决WIN10下某些应用不能正常打开的问题。

2020-02-21

msvcp140.dll

WIN10 64位操作系统 msvcp140.dll 动态库,解决WIN10下某些应用软件无法使用的问题。

2020-02-21

HEXCMP 二进制比较工具

HEXCMP 二进制比较工具 HEXCMP 二进制比较工具

2012-06-02

MTK10A 编译环境的搭建

MTK10A 编译环境的搭建

2012-03-08

GSM通讯原理

GSM通讯原理

2012-01-16

AD9.4.0.20159补丁文件

AD9.4.0.20159补丁文件 对ALTIUM DESIGNER的破解文件

2011-12-09

ALTIUM DESIGNER 9.0教程.pdf

1、Altium历史 2、DXP系统平台介绍 3、AltiumDesgner设计环境 4、Altium免费资源 5、从PROTEL到AltiumDesigner 6、原理图编辑基础 7、原理图绘图工具以及电气连接 8、创建第一张原理图 9、全局编辑 10、完成设计项目 11、项目编译及验证 12、集成库概念介绍

2011-12-09

Altium+designer+summer+09 license

这个license.alf可用与 8.0.0.15895版本,本人用了没任何问题,但是局域网中用了两台电脑就会出问题,但是如果在启动时断网就没问题了~

2011-12-09

美新加速度传感器MT6202中文使用说明附测试程序

美新加速度传感器MT6202中文使用说明附测试程序

2011-12-02

美新加速度传感器测试程序MX6202

美新加速度传感器测试程序

2011-12-02

义隆单片机EM78P173N C语言使用例程

EM78P173N C语言头文件 EM78P173.H EM78P173N的TCC、WDT、INT、WAKEUP、LVD、TBRD、HEAD、IAR等模块的应用实例及其C语言例程! 非常适合入门学习义隆单片机编程!

2011-11-11

义隆单片机学习入门比较好的资料

义隆单片机学习入门比较好的资料 序.doc 位单片机系列一览表.doc 目录.doc 第一章.doc 第二章EM78X56.doc 第三章 EM78447硬件结构.doc 第四章 指令系统.doc 第五章 EM78系列单片机程序设计基础 第六章 开发系统.doc 第七章 PIC TO EMC,doc emc 8位单片机系列一览表11.dot

2011-11-11

MTK 6252 META工具

MTK 6252 META工具

2011-11-09

FlashTools MTK 6252 10A

FlashTools MTK 6252 10A

2011-11-09

CACHER MTK 10A 6252

CACHER MTK 10A 6252 ,很难求的资源

2011-11-09

MTK MAUI工程支持的AT指令大全

MTK MAUI工程支持的AT指令大全

2011-11-08

MTK SOCKET API 文档 --- 各种函数介绍、参数解析

MTK SOCKET API 文档 --- 各种函数介绍、参数解析,是入门MTK SOCKET编程的好资料!

2011-10-11

MTK SOCKET编程ARI官方文档

MTK SOCKET编程ARI官方文档:详细介绍了SOCKET编程中所用到的各种API函数

2011-10-11

MTK平台任务创建详解

MTK平台任务创建详解 MTK平台任务创建详解 MTK平台任务创建详解

2011-09-18

GSM通信协议标准中文板

GSM通信协议标准中文板 GSM通信协议标准中文板 GSM通信协议标准中文板 做移动开发的应该会有用处

2011-07-23

SIM-ME接口规范+GSM11.11.pdf

SIM-ME接口规范+GSM11.11.pdf SIM-ME接口规范+GSM11.11.pdf

2011-07-23

WORD20007 中将文件转换为PDF的插件

WORD20007 中将文件转换为PDF的插 WORD20007 中将文件转换为PDF的插件

2011-07-23

可充电电池:原理,隐患,及安全充电方法

本文概要介绍了电池充电方式和现代电池技术,以使读者能更好的了解便携设备中使用的电池。本文对镍镉(NiCd)电池,镍氢(NiMH)电池和锂离子(Li+)电池的化学性质进行了描述,还介绍了一款单节锂离子和锂聚合物电池保护芯片。

2011-07-16

JLINK_V8电路原理图

JLINK_V8电路原理图 JLINK_V8电路原理图JLINK_V8电路原理图JLINK_V8电路原理图

2011-06-30

Unicode 到 GB2312编码的映射 很难求的资源

Unicode 到 GB2312编码的映射,根据Unicode编码中的汉字的顺序,从0x4e00开始,建立于GB2312的映射

2011-03-03

LINUX命令大全 修改版

LINUX命令大全 修改版,详细介绍了LINUX系统中的命令,其目录如下: 文件传输 备份压缩 文件管理 磁盘维护 系统设置 文档编辑 网络通讯 电子邮件与新闻组 X WINDOWS SYSTEM 其他

2011-02-24

38个电子信息类专业本科毕业论文

38个电子信息类专业本科毕业论文,论文的经典之作

2011-02-22

国内经典操作系统原理教程

第一章:操作系统概论 第二章:处理机管理 第三章:并发进程 第四章:存储管理 第五章:设备管理 第六章:文件管理 第七章:操作系统安全性 第八章:网络和分布式操作系统

2011-01-04

ICETEK-5100USB2.0A FOR CCS4.0驱动

ICETEK-5100USB2.0A FOR CCS4.0驱动 ICETEK-5100USB V2.0在CCS4.0下的驱动

2010-12-13

C 语言 深 度 剖析

强烈建议大家看一看这本书,pdf格式的,不是影印的,含有目录,看起来特别方便,写的很详细,诙谐幽默. 最冤枉的关键字----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

2010-11-08

GB2312国标汉字编码与UNICODE编码的映射表

GB2312国标汉字编码与UNICODE编码的映射表,C语言的格式,直接可以移植到程序中使用。

2010-10-27

汉字字模点阵数据批量生成工具 suki_v5.0 破解版 消除了生产字库时中间产生的一个十字叉

汉字字模点阵数据批量生成工具 suki_v5.0 破解版 消除了生成字库时中间产生的一个十字叉

2010-10-27

LPC214X工程模板 --- 标准版

LPC214X工程模板 --- 标准版,对LPC214X系列各个寄存器做了详细的描述。

2010-10-26

GPRS 上网时DNS设置

GPRS 上网时DNS设置,SIM300模块中的DNS获取方法

2010-10-09

SIM300 GPRS 和 电脑通讯时 路由器的设置

SIM300 GPRS 和 电脑通讯时 路由器的设置

2010-10-07

LPC2136 IAP使用总结

LPC2136 IAP使用总结,对FLASH进行写操作。

2010-10-05

GPS应用系统常用术语结解释

GPS应用系统常用术语结解释,对GPS定位系统中所用到的常用的术语进行了详细的描述。

2010-09-30

NEMA-0183 详细 解 释

NEMA-0183 详细 解 释,详细描述了NEMA83中GPS数据的格式。

2010-09-30

GSM+07.07+version+7.5.0+Release+1998.pdf

GSM+07.07+version+7.5.0+Release+1998.pdf

2010-09-20

空空如也

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

TA关注的人

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