Sun Studio 12:C 用户指南

(x86)

函数在以下寄存器中返回结果:

表 F–21 x86 函数返回类型所使用的寄存器

寄存器 

返回的类型 

int 

%eax 

long long

%edx%eax

floatdoublelong double

%st(0)

float _Complex

实部为 %eax,虚部为 %edx

double _Complexlong double _Complex

与包含相应浮点类型的两个元素的结构相同。 

除了 structunionlong longdoublelong double 之外的所有参数都作为四字节值传递;long long 作为八字节值传递,double 作为八字节值传递,long double 作为 12 字节值传递。

structunion 被复制到栈中。大小向上舍入为 4 字节的倍数。返回 structunion 的函数被传递一个隐藏的首参数,并指向返回的 structunion 的存储位置。

从一个函数返回时,需要调用程序从栈中弹出参数,但 structunion 返回的附加参数除外,它由调用的函数弹出。