摘要: [C/C++]堆栈指引 (2012-10-12 15:18:48)转载▼标签:函数参数与局部变量kernellinux堆栈it分类: C/CPlusPlus前言我们经常会讨论这样的问题:什么时候数据存储在堆栈(Stack)中,什么时候数据存储在堆(Heap)中。我们知道,局部变量是存储在堆栈中的;debug时,查看堆栈可以知道函数的调用顺序;函数调用时传递参数,事实上是把参数压入堆栈,听起来,堆栈象一个大杂烩。那么,堆栈(Stack) 到底是如何工作的呢? 本文将详解C/C++堆栈的工作机制。阅读时请注意以下几点:1)本文讨论的编译环境是 Visual C/C++,由于高级语言的堆栈工作机制大 阅读全文
posted @ 2014-01-13 23:38 Kaa 阅读(146) 评论(0) 推荐(0) 编辑
摘要: SelectClipRgn函数功能:该函数选择一个区域作为指定设备环境的当前剪切区域。函数原型:int SelectClipRgn(HDc hdc, HRGN hrgn);参数:hdc:设备环境句柄。hrgn:标识被选择的区域。返回值:返回值表明了区域的复杂度,可以是下列值之一。NULLREGION:区域为空;SIMPLEREGION:区域为单个矩形;COMPLEXREGION:区域为多个矩形;ERROR:发生错误(以前的剪切区域不受影响)。Windows NT:若想获得更多错误信息,请调用GetLastError函数。注释:只有选择区域的一个拷贝被使用,区域本身可被任何其他的设备环境所选择, 阅读全文
posted @ 2014-01-12 16:35 Kaa 阅读(191) 评论(0) 推荐(0) 编辑
摘要: SelectClipRgn函数功能:该函数选择一个区域作为指定设备环境的当前剪切区域。函数原型:int SelectClipRgn(HDc hdc, HRGN hrgn);参数:hdc:设备环境句柄。hrgn:标识被选择的区域。返回值:返回值表明了区域的复杂度,可以是下列值之一。NULLREGION:区域为空;SIMPLEREGION:区域为单个矩形;COMPLEXREGION:区域为多个矩形;ERROR:发生错误(以前的剪切区域不受影响)。Windows NT:若想获得更多错误信息,请调用GetLastError函数。注释:只有选择区域的一个拷贝被使用,区域本身可被任何其他的设备环境所选择, 阅读全文
posted @ 2014-01-11 00:45 Kaa 阅读(904) 评论(0) 推荐(0) 编辑
摘要: HANDLECreateEvent(LPSECURITY_ATTRIBUTESlpEventAttributes,// 安全属性BOOLbManualReset,// 复位方式BOOLbInitialState,// 初始状态LPCTSTRlpName // 对象名称);[1]参数lpEventAttributes[输入]一个指向SECURITY_ATTRIBUTES结构的指针,确定返回的句柄是否可被子进程继承。如果lpEventAttributes是NULL,此句柄不能被继承。Windows NT/2000:lpEventAttributes的结构中的成员为新的事件指定了一个安全符。如果lp 阅读全文
posted @ 2014-01-11 00:36 Kaa 阅读(6182) 评论(0) 推荐(0) 编辑
摘要: Delphi内嵌ASM简易教程 作者: heiying2006-03-19 18:33分类:默认分类标签: 前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入ASM代码的程序员我想不多,因为这方面的资料太少了,另一方面,它还需要有基本的汇编语言知识,关於汇编语言的教程,那实在太多了,如果你对汇编语言不熟的话,建议你下载相交的教程先读读。因此,本文假定您已经熟悉了汇编语言。 (注,下文中的函数与过程统称为函数。)一.如何在Delphi程序中增加一段汇编代码? 很简单,用asm...end把你的汇编代码封装起来,再把它放到你需要它的位置.这个需... 阅读全文
posted @ 2014-01-10 23:52 Kaa 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 在操作系统中,栈是向下生长的。栈顶和栈底不是上下决定,而是有入栈方向决定! 阅读全文
posted @ 2014-01-10 22:38 Kaa 阅读(5262) 评论(0) 推荐(2) 编辑
摘要: 对ARM堆栈的理解 堆栈严格来说应该叫做栈,栈(Stack)是限定仅在一端进行插入或删除操作的线性表。因此,对栈来说,可以进行插入或删除操作的一端端称为栈顶(top),相应地,另一端称为栈底(bottom)。不含元素的空表称为空栈。由于堆栈只允许在一端进行操作,因而按照后进先出(LIFO-Last In First Out)的原理运作。 从栈顶的定义来看,栈顶的位置是可变的。空栈时,栈顶和栈底重合;满栈时,栈顶离栈底最远。ARM为堆栈提供了硬件支持,它使用一个专门的寄存器(堆栈指针)指向堆栈的栈顶。而且7种模式都有各自独立的堆栈指针,也就是有各自独立的堆栈空间。但这里的堆栈和uC/OS操作系统 阅读全文
posted @ 2014-01-10 22:34 Kaa 阅读(1244) 评论(0) 推荐(0) 编辑