08 2015 档案

摘要:一、虚函数的工作原理 虚函数的实现要求对象携带额外的信息,这些信息用于在运行时确定该对象应该调用哪一个虚函数。典型情况下,这一信息具有一种被称为 vptr(virtual table pointer,虚函数表指针)的指针的形式。vptr 指向一个被称为 vtbl(virtual table,虚函数表... 阅读全文
posted @ 2015-08-13 10:53 Parishe 阅读(833) 评论(0) 推荐(0)
摘要:同步通信原理 同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。 采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字... 阅读全文
posted @ 2015-08-13 10:52 Parishe 阅读(2097) 评论(0) 推荐(0)
摘要:最近在看代码,写代码的人很喜欢用回调函数和函数指针。一直觉得回调函数和函数指针挺神秘的,所以查了一些资料,来与大家一起来分享。什么是回调函数简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数... 阅读全文
posted @ 2015-08-13 10:52 Parishe 阅读(162) 评论(0) 推荐(0)
摘要:可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况。如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料的后果。那么什么是可重入函数呢?所谓可重入是指一个可以被多个任务调用的过程,任务在调用时不必担心数据... 阅读全文
posted @ 2015-08-13 10:47 Parishe 阅读(2051) 评论(0) 推荐(0)
摘要:全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 ... 阅读全文
posted @ 2015-08-13 10:47 Parishe 阅读(5150) 评论(0) 推荐(0)
摘要:内联函数的执行过程与带参数宏定义很相似,但参数的处理不同。带参数的宏定义并不对参数进行运算,而是直接替换;内联函数首先是函数,这就意味着函数的很多性质都适用于内联函数,即内联函数先把参数表达式进行运算求值,然后把表达式的值传递给形式参数。内联函数与带参数宏定义的另一个区别是,内联函数的参数类型和返回... 阅读全文
posted @ 2015-08-13 10:46 Parishe 阅读(8472) 评论(0) 推荐(3)
摘要:我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:classClxBase{public:ClxBase(){};virtual~ClxBase(){};virtualvoidDoSomething(){coutD... 阅读全文
posted @ 2015-08-13 10:45 Parishe 阅读(174) 评论(0) 推荐(0)
摘要:/**** 保证一个类仅有一个实例,并提供一个访问它的全局访问点*/#include #include using namespace std;class Singelton{private: Singelton(){} static Singelton* singel;public: static... 阅读全文
posted @ 2015-08-13 10:44 Parishe 阅读(623) 评论(0) 推荐(0)
摘要:C++强大的功能来源于其丰富的类库及库函数资源。C++标准库的内容总共在50个标准头文件中定义。在C++开发中,要尽可能地利用标准库完 成。这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费时间、人力重新开发呢;(2)质量:标准库的都是经过严格测试的,正确性有保证; (3)效率:关于人的... 阅读全文
posted @ 2015-08-13 10:42 Parishe 阅读(7707) 评论(0) 推荐(0)
摘要:数据对齐,是指数据所在的内存地址必须是该数据长度的整数倍。DWORD数据的内存起始地址能被4除尽,WORD数据的内存起始地址能被2除尽。X86CPU能直接访问对齐的数据,当它试图访问一个未对齐的数据时,会在内部进行一系列的调整。这些调整对于程序员来说是透明的,但是会降低运行速度,所以编译器在编译程序... 阅读全文
posted @ 2015-08-13 10:41 Parishe 阅读(235) 评论(0) 推荐(0)
摘要:关于全局、static对象/变量的初始化问题1. 全局变量、static变量的初始化时机:main()函数执行之前(或者说main中第一个用户语句执行之前)。2.初始化顺序。1)全局对象、外部static对象a)同一编译单元(同一源文件)中,按照对象/变量的定义顺序初始化。b)不同编译单元,C++标... 阅读全文
posted @ 2015-08-13 10:41 Parishe 阅读(3249) 评论(0) 推荐(0)
摘要:二进制、八进制、十进制、十六进制之间转换一、 十进制与二进制之间的转换(1) 十进制转换为二进制,分为整数部分和小数部分① 整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余... 阅读全文
posted @ 2015-08-13 10:40 Parishe 阅读(891) 评论(0) 推荐(0)
摘要:一、编译时与运行时的内存情况1.编译时不分配内存编译时是不分配内存的。此时只是根据声明时的类型进行占位,到以后程序执行时分配内存才会正确。所以声明是给编译器看的,聪明的编译器能根据声明帮你识别错误。2.运行时必分配内存运行时程序是必须调到“内存”的。因为CPU(其中有多个寄存器)只与内存打交道的。程... 阅读全文
posted @ 2015-08-13 10:39 Parishe 阅读(298) 评论(0) 推荐(0)
摘要:extern "C"的用法解析 http://blog.sina.com.cn/u/494a1ebc010004g5 C++中extern “C”含义深层探索 1.引言 C++语言的创建初衷是“a better C”,但是这并... 阅读全文
posted @ 2015-08-13 10:37 Parishe 阅读(370) 评论(0) 推荐(0)
摘要:【C语言的Static inline 函数的作用】【printf打印格式】%x 打印十六进制%d 打印十进制%b 打印二进制%c 打印字符%s 打印字符串%f 打印单精度float%lf 打印双精度double【关于C++中的类型转换】dynamic_cast: 通常在基类和派生类之间转换时使用,把... 阅读全文
posted @ 2015-08-13 10:36 Parishe 阅读(196) 评论(0) 推荐(0)
摘要:面向对象的三个基本特征(讲解)面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程(OOP)语言的一个主... 阅读全文
posted @ 2015-08-13 10:03 Parishe 阅读(183) 评论(0) 推荐(0)
摘要:强制转化四种类型可能很多人都常常忽略就象我一样,但是有时还是比较有用的。不了解的建议看看,一些机制我也不是十分了解,只是将一些用法写出来让大家看看。 2004-11-27 9:00强制转化无论从语法还是语意上看,都是c++中最难看的特征之一。但是基于c风格的转化的语义的不明确性及其一些潜在问题。强制... 阅读全文
posted @ 2015-08-13 10:02 Parishe 阅读(657) 评论(0) 推荐(0)
摘要:memcpy与memmove的目的都是将N个字节的源内存地址的内容拷贝到目标内存地址中。但当源内存和目标内存存在重叠时,memcpy会出现错误,而memmove能正确地实施拷贝,但这也增加了一点点开销。memmove的处理措施:(1)当源内存的首地址等于目标内存的首地址时,不进行任何拷贝(2)当源内... 阅读全文
posted @ 2015-08-13 10:01 Parishe 阅读(377) 评论(0) 推荐(0)
摘要:开发1https://developer.apple.com/resources/apple开发者2http://www.appcoda.com/appcode3http://nshipster.com/4http://www.raywenderlich.com/5http://www.objc.i... 阅读全文
posted @ 2015-08-13 09:58 Parishe 阅读(145) 评论(0) 推荐(0)