C++参数入栈方式

来源:互联网 发布:移动端单页seo 编辑:程序博客网 时间:2024/06/06 03:49

一般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。

原创粉丝点击