帮我解解这个问题,在c程序中定义函数的形参时,系统要不要对形参分配内存空间,说说你的理由!
2个回答
展开全部
C语言规定的形参传递的方法,称作cdecl,(应该是唯一的传参方式吧…),c程序的编译器需要遵守这个约定的规范,便于不同编译器函数的相互调用,具体规范是函数调用时,形参占用程序栈空间,参数从右到左入栈,被调函数清栈取出参数,即所谓cdecl调用方式。C++中有更多的调用方式,不需要分配内存,使用寄存器传递参数的方式称作fastcall,这种必定不能用于共享库函数。更详细的可以参考这个百科:http://baike.baidu.com/view/1280676.htm
所以可以总结说,c程序的形参传递使用cdecl,纯C编译器都会遵守,这种方式下形参在调用时存储在程序栈上,函数定义的时候,形参只是一个符号而已。
所以可以总结说,c程序的形参传递使用cdecl,纯C编译器都会遵守,这种方式下形参在调用时存储在程序栈上,函数定义的时候,形参只是一个符号而已。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询