2011年9月9日
摘要: 转载bin = BINaries/dev = DEVices/etc = ETCetera/lib = LIBrary/proc = PROCesses/sbin = Superuser BINaries/tmp = TeMPorary/usr = Unix Shared Resources/var = VARiable ?FIFO = First In, First OutGRUB = GRand Unified BootloaderIFS = Internal Field SeperatorsLILO = LInux LOaderMySQL = My是最初作者女儿的名字,SQL= Stru 阅读全文
posted @ 2011-09-09 09:11 kkmm 阅读(691) 评论(0) 推荐(0) 编辑
  2011年9月1日
摘要: 虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数!纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数!虚函数引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。class Cman{public: virtual void Eat(){……}; void Move();private:};class CChild : public CMan{public: virtual void Eat(){……};private:};CMan m_man;CChild m_child;//这才是使用的精髓,如果不定 阅读全文
posted @ 2011-09-01 11:09 kkmm 阅读(189) 评论(0) 推荐(0) 编辑
  2011年8月25日
摘要: 红色字体 -- 结论性话语橙黄色底色 -- 重要点、trick点2.13GPP 3GPP2基本一样,有一点差别就是3GPP3GPP 3GPP2在开发的过程中,和IETF(Internet Engineering Task Force)交互了很多,原因是3GPP和3GPP2是基于IP协议的,而IP协议是由IEFT定义的,自然要和人家去商量。3GPP 3GPP2开发过程中,还跟OMA(Open Mobile Alliance)打了不少交道。RFC是IETF研究制定的协议,有很多。包括standards track 和 non-standards track。其中standards track 中首 阅读全文
posted @ 2011-08-25 16:20 kkmm 阅读(782) 评论(0) 推荐(0) 编辑
  2011年8月6日
摘要: Linux下的多线程编程本文出自:http://www.china-pub.com 作者: 姚继锋 (2001-08-11 09:05:00)1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问 阅读全文
posted @ 2011-08-06 08:13 kkmm 阅读(176) 评论(0) 推荐(0) 编辑
  2011年8月2日
摘要: 下图中,a指针是分配在栈内存上的,和int a = 5;是一样的区域。a指针指向的内容是分配在堆上的,a[0] ~ a[4]。C++中分配内存,3种方式:(1)从静态存储区域分配。内存在程序编译(注意,是编译的时候!int a = 5;都不是编译的时候,都算是运行的时候)的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 (2)在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 (3) 从堆上分配,亦称动态内存分配。程序在运行的时 阅读全文
posted @ 2011-08-02 17:30 kkmm 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 用在宏里面。当宏里面有if时,可以起到封闭代码作用,防止与外面的 if 混淆。比如定义宏,#define FREE1(p) if (p) free (p)而在代码部分这样调用宏:if (expression)FREE1(p)elseprintf(“expression was false.\n”) ;展开后,else会和宏中的if配对了,这就错了。但是宏写成如下的形式就永远不会错了#define FREE4(P)do { if (p) free(p)}; while (0) 阅读全文
posted @ 2011-08-02 12:56 kkmm 阅读(321) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/flying_bat/archive/2008/01/18/1044693.html在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。 但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while(0)消除goto语句。通常,如果在一个函数中开始要分配一些资源,然后在中途执行过程中如果遇到错误则退出函数,当然,退出前先释放 阅读全文
posted @ 2011-08-02 12:19 kkmm 阅读(246) 评论(0) 推荐(0) 编辑
摘要: typedef的用法*****以下是参考部分*****此部分参考自:http://blog.sina.com.cn/u/572f7666010008dm用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb;//这多数不符合我们的意图,它只声明了一个指向字符变量的指针,//和一个字符变量;以下则可行:typedef char* PCHAR;PCHAR pa, pb;用途二:用在旧的C代码中,帮助struct。以前的代码中,声明struct新对象时,必须要带上struct,即形式为:struct结构名对象名,如:struct tagPO 阅读全文
posted @ 2011-08-02 11:11 kkmm 阅读(183) 评论(0) 推荐(0) 编辑
  2011年8月1日
摘要: 首先介绍我们会经常看到的一些寄存器:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI)2个指针寄存器(ESP和EBP)4个数据寄存器(EAX、EBX、ECX和EDX):32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可分 阅读全文
posted @ 2011-08-01 22:00 kkmm 阅读(6083) 评论(0) 推荐(2) 编辑
  2011年7月28日
摘要: http://www.wangchao.net.cn/bbsdetail_39580.htmlconst是C++中引入的一个新的关键字,它为C++编程带来了很大的方便。指向const对象的指针和const指针是两个名字很接近的概念,对于初学者来说非常容易搞混,这里对它们进行区分。 指向const对象的指针 可以这样理解指向const对象的指针: 指向const对象的指针就是一个指针,不能通过它来修改它所指向的对象的值 · 声明方法:const int *p; const对象在初始化后是不允许对其值进行修改的,因此,我们不能用一个普通指针指向一个const对象,即下面的赋值会引起编译错 阅读全文
posted @ 2011-07-28 12:36 kkmm 阅读(563) 评论(0) 推荐(0) 编辑