2019年1月5日

函数调用模型

摘要: 一 函数调用模型 ①入栈的过程 程序开始运行时,操作系统会找到程序的入口函数main。操作系统会把main函数的返回地址入栈,然后把main函数的参数入栈,如果main中有局部变量,还会把这些变量入栈。 main函数中调用fa函数时,操作系统把main函数的运行状态入栈,把fa的返回地址入栈,把fa 阅读全文

posted @ 2019-01-05 20:17 锋邢天下 阅读(414) 评论(0) 推荐(0) 编辑

栈的生长方向

摘要: 我们知道,栈是先进后出,后进先出的数据结构。那到底是先入栈变量的内存地址大,还是后入栈的内存地址大? 如果熟悉汇编,肯定很轻松就知道肯定是先入栈的内存地址大。看汇编代码时,每push一个变量,esp寄存器就减少该变量的大小。比如push一个int变量,esp-4。 那能不能用C语言验证呢?当然可以 阅读全文

posted @ 2019-01-05 14:39 锋邢天下 阅读(2105) 评论(0) 推荐(0) 编辑

用VisualAssist在Visual Studio上设置快捷键快速编程

摘要: 一 在Visual Studio上安装VisualAssist工具: 链接:https://pan.baidu.com/s/1uaeRFTvY4p7LNoDvQFEU5A 提取码:j1ws 安装后,找到VA_X.dll并替换就可以了。我的电脑安装的Visual Studio2017,VA_X.dll 阅读全文

posted @ 2019-01-05 14:05 锋邢天下 阅读(257) 评论(0) 推荐(0) 编辑

内存四区-栈区

摘要: 局部变量存放在栈区,函数return以后申请的这块栈区就被回收(C++编译器把这段内存析构了),所以在函数内声明的局部变量,函数外不能使用该局部变量的内存地址。下面用代码说明: #define _CRT_SECURE_NO_WARNINGS#include <stdlib.h>#include <s 阅读全文

posted @ 2019-01-05 11:20 锋邢天下 阅读(234) 评论(0) 推荐(0) 编辑

内存四区-堆区

摘要: 堆区: malloc的内存空间,new的内存空间都是放在堆中。 因为堆区内存空间的生命周期归操作系统管理,函数执行完后堆区对象不会被析构掉,也没有被程序员主动析构的话,可以在调用函数里使用该内存空间。 用代码了解下堆区: #define _CRT_SECURE_NO_WARNINGS#include 阅读全文

posted @ 2019-01-05 10:46 锋邢天下 阅读(344) 评论(0) 推荐(0) 编辑

导航