
C/C++
文章平均质量分 81
yyyuhan
本人还是一个在读的研究生
展开
-
C++ sizeof 使用规则及陷阱分析
1、什么是sizeof 首先看一下sizeof在msdn上的定义: The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type (including aggregate types). This keyword returns a value原创 2008-07-10 13:25:00 · 621 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静转载 2008-06-05 12:37:00 · 457 阅读 · 0 评论 -
四种类型转化方法
一、C 风格(C-style)强制转型如下: (T) expression // cast expression to be of type T 函数风格(Function-style)强制转型使用这样的语法: T (expression) // cast expression to be of type T 这两种形式之间没有本转载 2008-10-26 23:33:00 · 660 阅读 · 0 评论 -
C++内存管理
Bill Gates 曾经失言: 640K ought to be enough for everybody — Bill Gates 1981 C++程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分原创 2008-10-26 23:41:00 · 522 阅读 · 0 评论 -
C/C++语言void及void指针
1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个vo原创 2008-10-26 23:44:00 · 706 阅读 · 0 评论 -
C/C++内存对齐
一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从原创 2008-11-02 02:52:00 · 857 阅读 · 0 评论 -
类型和值之间的映射(Int2Type)
在C++中,术语“转化”(conversion)描述的是从另外一个类型的值(value)获取一个类型(type)的值的过程。可是有时候你会需要一种不同类型的转化:可能是在你有一个类型时需要获取一个值,或是其它的类似情形。在C++中做这样的转化是不寻常的,因为类型域和值域之间隔有有一堵很严格的界线。可是,在一些特定的场合,你需要跨越这两个边界,本栏就是要讨论该怎么做到这个跨越。映射原创 2008-11-25 21:53:00 · 1229 阅读 · 0 评论 -
型别对型别的映射(Type2Type)
就是这样一个结构:template typename T>struct Type2Type { typedef T OriginalType; };假定有个片断如下,创建一个T*template class T,class U>T* Create(const U& arg){ return new T(arg);}如果对于某个类如“Widget”,其ctor要有两个原创 2008-11-25 22:25:00 · 1247 阅读 · 0 评论 -
解析C++虚函数表
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,原创 2008-11-24 15:12:00 · 923 阅读 · 1 评论