2隐形的指针

匿名 (未验证) 提交于 2019-12-03 00:34:01

编译器会自动把结构体的地址,通过ecx传到函数内部隐藏创建的一个this指针上.
如果我们的函数,没有返回值,没有使用结构体,编译器还会给我们传递进去吗?

我们来验证一下.


1.this指针是编译器默认传入的,通常会使用ecx进行参数的传递。
2.无论函数有没有使用结构体中的数据,this指针都会存在,你用不用,编译器都会传进去。
3.this指针是编译器隐藏创建的,所以我们起其他变量名或者参数名的时候,一定要避免和this指针重名。


学习过汇编语言和C语言的好处,可以通过这种反汇编的方式,来研究一个语法在内存中的本质。

原文:https://www.cnblogs.com/xiaodaxiaonao/p/9218937.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!