可变参数列表是通过stdarg.h内的宏来实现的: 类型 va_list 三个宏: va_start va_arg va_end 我们可以声明一个va_list变量,与这三个宏配合使用。 可变参数必须要有一个命名参数,因为可变参数是通过栈来实现的,函数中的最右边的参数最先入栈。 其栈结构为 0x1f ...
分类:
其他好文 时间:
2016-08-18 01:15:57
阅读次数:
222
进程:资源分配的基本单位线程:进程调度的基本单元线程强调资源共享但不是一味的共享线程两个比较重要的私有成员:【1】必须有自己的硬件上下文进行自己切换时上下文的切换【2】私有栈结构进程强调资源独占但不是一味的共享各线程共享一下进程资源:(1)文件描述符表(2)每..
分类:
编程语言 时间:
2016-07-31 16:12:12
阅读次数:
257
帧栈结构是一种机器实现切换上下文的机制。具体介绍看 http://blog.csdn.net/yxysdcl/article/details/5569351 IA32体系涉及寄存器保存问题,%eax,%ecx,%edx由调用者保存,%ebx,%esi,%edi由被调用者保存,%esp,%ebp分别是 ...
分类:
其他好文 时间:
2016-06-28 21:56:16
阅读次数:
181
过程采用帧栈结构保存局部信息和状态信息,可以实现上下文的转换,局部变量保存等好处,随之带来的是数组越界引用和缓冲区溢出会造成严重的后果。后果可参考 http://www.cnblogs.com/fanzhidongyzby/archive/2013/08/10/3250405.html 解决办法1. ...
分类:
其他好文 时间:
2016-06-28 21:51:09
阅读次数:
146
利用C++自带的栈结构 源代码如下: 实验截图如下: ...
分类:
其他好文 时间:
2016-06-11 13:15:21
阅读次数:
122
由于所有的递归算法都可以借助于堆栈转换成循环结构的非递归算法。方法一:形式化模拟转换。方法二:根据要求解问题的特点设计借助于堆栈的循环结构算法。而此次正好是利用第二种按方法求解。1.1非递归前序遍历:首先利用下图来设计非递归前序遍历算法思想:
堆栈结构体如下:#define size 100
typedef struct
{
DataType data[size];
int...
分类:
其他好文 时间:
2016-06-02 14:48:57
阅读次数:
282
栈帧的形成和关闭
各种调用方式的考擦
使用 fp或sp寻址
函数的参数 与返回值
arm指令中立即数存放位置
gdbserver 调试环境栈帧的形成和关闭栈在内存中是一块特殊的存储空同, 它的存储原则是“先进后出”, 即最先被存储的数据最后被释放, 汇编过程通常使用 push 指令与 POP指令对栈空间执行数据压入和数据弹出操作。栈结构在内存中占用一段连续的存储空间, 通过sp与 fp这两个栈指针寄...
分类:
编程语言 时间:
2016-05-27 12:56:13
阅读次数:
234
如何用O(1)的时间复杂度求栈中最小元素解题思路:
我们经常会采用空间换取时间提高时间复杂度。我们可以使用两个栈结构,一个栈用来存储数据,另一个栈用来存储栈中的最小元素。思路如下:如果当前入栈的元素比原来栈中的最小值还小,则把这个值压入保存最小元素的栈中;在出栈时,如果当前入栈的元素恰好为当前栈中的最小值,保存最小值的栈顶元素也出栈,使得当前最小值变为其入栈之前的那个最小值。
实现代码如下:pa...
分类:
编程语言 时间:
2016-05-13 03:06:07
阅读次数:
162
launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。
Activity一共有以下四种lau...
分类:
移动开发 时间:
2016-05-12 12:07:34
阅读次数:
260
用C语言实现了一个简单的栈。基本思路是定义一个栈结构体,里面有两个指针和一个表示栈大小的int。两个指针分别指向栈底和栈顶,当栈底指针和栈顶指针重合时,说明栈为空;当栈顶指针减去栈底指针的值大于等于栈的大小,说明栈已满。 参考 : 百度文库 http://blog.csdn.net/mci2004/ ...
分类:
其他好文 时间:
2016-05-09 21:59:52
阅读次数:
558