C++构造、析构,四个调用约定
作者:互联网
1).识别构造
1.构造函数优先调用
2.ecx传参,且函数内部会将ecx给this赋值(this可能是一块内存空间,也可能是寄存器变量)且返回this指针
3.可以点击this指针,可能会有多次调用
注: 构造析构都是thiscall,不能修改
2).识别析构
1.析构最后一次调用
2.thiscall传参
3.无返回值
3).识别各种调用约定的成员函数
1.c调用约定,会将this指针push进去,然后平栈按照c调用约定平栈
2.stdcall,会将this指针push进去,内部平栈
3.thiscall会默认使用ecx,外部更改,内部使用,平栈和stdcall一样
4.fastcall,会使用两个寄存器传参,且也会外部更改ecx,内部使用.
5.c约定,std约定,push的时候都是this指针,且是第一个参数(也就是call上面的最近的一个push,必定为this指针)
标签:调用,C++,平栈,析构,push,指针,ecx 来源: https://www.cnblogs.com/reversedog/p/16381578.html