2隐形的指针

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

我们来验证一下.


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


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

猜你喜欢

转载自www.cnblogs.com/xiaodaxiaonao/p/9218937.html