编程语言
首页 > 编程语言> > C++构造、析构,四个调用约定

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