c++ 存储区
1 全局变量 全局存储区
2 普通函数内变量 vs设置的栈大小 存放在这个栈上 是栈变量 栈变量在函数使用结束后内存会被回收 栈会曾使用完后栈减
3 函数参数 在cpu寄存器 速度是最快的 参数在给别的接口或者变量赋值时结束后生命周期结束是一个一个赋的 因为汇编指令一次只执行一个操作 move stuck地址 eax
多个就是
move stuck地址 eax
move eax 新参数
move stuck:+4 eax
move eax 新参数2号
move stuck:+8 eax
4 类
class 是 new 的在堆
class 不是 new 的在栈
堆的一个一个new 存 stl 里
栈的直接 类名 变量名 初始化在构造函数内 手动实现 程序员初始化
5 静态变量
类内 静态变量在全局存储区
类内 静态类在全局存储区
普通文件内全局静态变量 全局存储区
普通文件内全局静态类 全局存储区
6 类内成员参数 创建在栈变量也在栈 创建在堆变量也存在堆(但是运行时类函数整个都在栈上)这个是存储在堆上运行在栈上
虚函数不影响内存分配 虚函数有子孙函数表 使用双冒号可以调用整个孙子到祖先内的函数调用
7 const 常量 在全局存储区 类的根据new不new new在堆不new在栈 使用const_cast<>可以改变常量的值
8 枚举 此变量不是变量 是立即数 编译时直接写到exe中
move stuck:+0 50
浮点数的汇编我也不会还没精力去看,好累好难