以下代码的激活记录是什么样的?

时间:2009-11-04 06:34:51

标签: c

int test (int integer ){
    int results =0 ;
    results = 10 - integer;
    printf("%d \n", &integer);
    return results;
}


void main(){
    printf("%d \n", test(1));

}

3 个答案:

答案 0 :(得分:2)

激活记录/堆栈帧依赖于体系结构和平台。也就是说,一个模糊的通用看起来像

+----------------+
| integer        |
+----------------+
| return address |
+-----------------
| link pointer   |
| (aka saved     |
| base pointer   |
+----------------+
| results        |
+----------------+

那里可能还有其他东西,例如保存的寄存器,但这应该给你一个粗略的想法。

答案 1 :(得分:0)

Google将引导您访问维基百科,维基百科将为您提供回答问题所需的背景信息。

答案 2 :(得分:0)

咨询Dragon Book

相关问题