08 2011 档案
The 3G IP Multimedia Subsystem(IMS)学习笔记
摘要:红色字体 -- 结论性话语橙黄色底色 -- 重要点、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 阅读(795) 评论(0) 推荐(0) 编辑
Linux下的多线程编程
摘要: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 阅读(184) 评论(0) 推荐(0) 编辑
C++内存探讨
摘要:下图中,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 阅读(179) 评论(0) 推荐(0) 编辑
把一个宏定义成do {} while(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 阅读(325) 评论(0) 推荐(0) 编辑
【转】do...while(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 阅读(250) 评论(0) 推荐(0) 编辑
typedef 的用法
摘要: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 阅读(189) 评论(0) 推荐(0) 编辑
eax ...edi esp ebp寄存器简介(转)
摘要:首先介绍我们会经常看到的一些寄存器: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 阅读(6160) 评论(0) 推荐(2) 编辑


点击右上角即可分享
微信分享提示