- 博客(5)
- 收藏
- 关注
原创 函数默认值&&重载&&inline函数
一、函数默认值c89: 不支持带有默认值的函数 c++99: 支持带有默认值的函数默认值注意事项:1、默认函数一般写在声明中2、自右向左依次赋值(即设置默认值时应该从右至左),因为实参的传递是从前至后。如若不是这样则报错。3、默认值只能赋一次4、默认值的限制:不能赋局部变量 能使用全局变量和静态变量 可以是函数调用int Compare(in...
2018-11-27 18:00:35 233
原创 函数的堆栈调用
让我们带着问题来阅读本篇文章型参在哪里开辟内存? 型参的入栈顺序? 函数返回值怎么带出来? 函数的返回值为什么会回退到栈里? 函数调用结束为什么会沿着调用点继续执行?我们先来了解一下堆与栈是怎样的一种存在什么是栈?栈用于维护函数调用的上下文,离开栈,函数就没有办法实现。栈通常在用户空间的最高地址处分配,通常有数兆字节大小。栈在程序运行中具有举足轻重的地位。最重要的是,栈保...
2018-11-27 13:27:25 369
原创 4G虚拟地址空间分配
虚拟地址的分配:Linux:用户空间:内核空间 = 3:1windows:用户空间:内核空间 = 2:2(虚拟地址低空间,即从0x00000000~0X7FFFFFFF的2GB为用户空间,而高地址0x80000000~0xFFFFFFFF被分配给了系统内核。)图下研究的为Linux下的4G虚拟空间接下来我们从上至下依次解释一下这些:3G用户空间:1、保留区保留区1...
2018-11-23 23:10:50 1147
原创 编译,链接原理
从程序源代码到最终可执行文件需要四步:一、预编译(生成.i文件)预编译过程主要处理那些源代码文件中的一“#”开始的预编译指令。入:“#define”、“#clude”等。1、将所有的“#define”删除,并且展开所有的宏定义。2、处理所有条件预编译指令,比如:“#if”“#ifdef”“#elif”“#else”“#endif”3、处理“#include”预编译指令,将被...
2018-11-18 11:07:07 232
原创 Linux操作系统下的vim/vi操作
文本编辑:vim/vi + filename三种模式:命令模式(a i o O)j进入插入模式(编辑模式) 编辑模式(ESC)退回命令模式 命令模式(: ? /)进入末行模式i:插入模式 ...
2018-11-04 17:39:33 240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人