搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于函数调用机制!
标题:
关于函数调用机制!
只看楼主
crazychzy
等 级:
新手上路
帖 子:2
专家分:0
注 册:2007-12-26
楼主
问题点数:0 回复次数:1
关于函数调用机制!
请问各位大侠,在一个没有参数传递的函数调用中,在进入函数入口点之前,堆栈里应该只有返回地址吧?CPU的上下文是否要保护进堆栈?
另外,在参数传递过程中,编译器如何知道有几个参数呢?不定参数的函数调用又是怎么编译呢?
多谢!
搜索更多相关主题的帖子:
函数
堆栈
机制
参数
CPU
2007-12-26 14:58
灭火的风
来 自:杭州
等 级:
论坛游民
帖 子:161
专家分:10
注 册:2006-6-15
第
2
楼
得分:0
出了下一条机器指令的地址之外还有一些,比如一些通用寄存器(ax,cx,dx)和段寄存器(段寄存器我记不请到底要不要放进栈里了),总之还是要存很多东西的,但是还有一些,比如bx寄存器则是不压栈的,这部分是留给函数代码在使用前去保存的。所以CPU的上下文是要保存的。
不定参数一般是不能知道他们的数量的,除非像int main(int argc char *argv[])这样,用一个变量来说明,如果是int printf(char *fmt, ...);这样的函数,要读后面几个参数是有前面的变量fmt中的内容决定的,在函数里根据fmt的内容去判断的。
2007-12-26 15:16
2
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-194402-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.016769 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved