C++参数入栈方式
一般C++的参数入栈方式是从右向左,下面用一个小端机器来用一个例子研究一下。
long long a = 1, b = 2, c = 3;
printf("%d %d %d\n", a, b, c);
那么输出是多少呢?
这里涉及到几个方面:
1. 函数入栈方式,一般从右向左,这里假设以这样的方式
2. 大小端机器,这里是小端机器,所以低地址存储低字节,高地址存储高字节。
3. 栈增长方向。。从高位地址向低位地址增长,所以a, b, c在内存中结构如下,
4. 取多少数据,这里是取三个int型数据
所以当printf从栈按顺序取数据的时候,取的是1, 0, 2。