可变参数函数的传参约定:(64位Linux系统,gcc编译64位程序)
参数:rdi
rsi
rdx
rcx
r8
r9
浮点参数:xmm0 ~ xmm7
al
记录使用的寄存器数量(不一定等于浮点参数总数量)
更多的参数出现在调用者母函数的栈上。
当前函数的rbp
指着栈中母函数rbp
值存放的位置,然后里面(更高内存地址)是rsp
位置,然后里面依次就是后面的参数了。
所以多着的参数不能修改,否则可能会影响母函数变量值了,要想用可以先复制一份拷贝。
可变参数函数的传参约定:(64位Linux系统,gcc编译64位程序)
参数:rdi
rsi
rdx
rcx
r8
r9
浮点参数:xmm0 ~ xmm7
al
记录使用的寄存器数量(不一定等于浮点参数总数量)
更多的参数出现在调用者母函数的栈上。
当前函数的rbp
指着栈中母函数rbp
值存放的位置,然后里面(更高内存地址)是rsp
位置,然后里面依次就是后面的参数了。
所以多着的参数不能修改,否则可能会影响母函数变量值了,要想用可以先复制一份拷贝。