一,基础知识:
C++函数调用和c一样是从右到左入栈的,例如:
exa.foo(12);
则首先被压进12,然后在此函数被调用的地方压进对象的exa的首地址被压进(放在si),因为它是被选中的对象的首地址所以也被压进来了,记住此对象的首地址对应于this的值,正因为调用每个成员函数时候this都被压栈,所以成员知道它工作在哪个对象上,这样我们总能看到,在对象的成员调用之前压栈的次数等于参数的个数加一(除了static成员函数,它没有this)
博客介绍了C++函数调用的入栈机制,指出C++函数调用和C一样是从右到左入栈。以exa.foo(12)为例,先压入12,再压入对象exa的首地址,成员函数通过this值明确工作对象,static成员函数除外。
一,基础知识:
C++函数调用和c一样是从右到左入栈的,例如:
exa.foo(12);
则首先被压进12,然后在此函数被调用的地方压进对象的exa的首地址被压进(放在si),因为它是被选中的对象的首地址所以也被压进来了,记住此对象的首地址对应于this的值,正因为调用每个成员函数时候this都被压栈,所以成员知道它工作在哪个对象上,这样我们总能看到,在对象的成员调用之前压栈的次数等于参数的个数加一(除了static成员函数,它没有this)

被折叠的 条评论
为什么被折叠?