(简答题)
参数传递有哪些形式?寄存器和堆栈传递各有什么优缺点?
正确答案
每种体系结构及对应的编译器对参数传递都有自己的规定。参数传递并非总是通过堆栈进行的,参数入栈出栈是需要耗费时间的,编译器总是尽量优化利用寄存器来 传递参数,因为寄存器的访问效率要高,但当参数过多时,将放弃优化从而用栈传递参数。因此为了提高调用性能,应尽量减少参数个数,太多时可以将所有参数重 新定义为一个结构体,利用结构体指针来传递参数。在函数接口设计时应考虑硬件平台和编译器的特性,以灵活定义参数形式
答案解析
略
相似试题
(单选题)
通过寄存器传递参数比通过堆栈传递参数的优点是()。
(填空题)
子程序的基本结构包括()等几个部分;子程序的参数传递有寄存器、堆栈、存储器等方法。
(单选题)
利用堆栈传递子程序参数的方法是固定的,若主程序通过堆栈向子程序传递了3个参数,则在子程序中,主程序中最后一个被压入栈中的参数可以用()的形式来访问。
(判断题)
子程序需要保护寄存器,包括保护传递入口参数和出口参数的通用寄存器。
(单选题)
通过堆栈传递参数,在子程序中使用EBP间址取得参数的原因是()。
(单选题)
ATPCS定义了寄存器组中的()作为参数传递和结果返回寄存器。
(简答题)
说明C程序调用外部汇编模块的具体方法,并总结参数传递和汇编模块返回值的接口约定。分析C程序调用汇编模块前后的堆栈变化情况。
(单选题)
主程序通过堆栈向子程序传递了3个参数,子程序调用结束后,在主程序中清除堆栈中3个参数正确的指令是()。
(填空题)
在调用自定义函数时,参数的传递有()和() 两种形式。