C语言函数调用的返回值如何传递给被调用者?

Visual C++规定:

  • 若函数的返回值大小不超过4字节,则用寄存器EAX传递;
  • 若函数的返回值大小在4~8字节之间,用寄存器EAX:EDX传递。
  • 若函数的返回值大小超过8字节,则调用者为函数返回值预先分配一个空间,然后把该空间的地址作为隐式参数传递给被调用函数。

GCC中函数的返回值都是由调用者分配空间,并把该空间的地址作为隐式参数传递给被调用者。

c
64 views
Comments
登录后评论
Sign In