edit:由于x64下cdecl会学fastcall把特定型别的args放register去传
所以这问题应该是无解。
简单的说,以下方的code为例子,根本不可能拿到正确的&a
编译器在发现你试图取址a/b的时候 会把他们从esi/edi(都是x64的register)
拷贝出来以后随意丢在一个无法预期的位置让你去取址
以这边来讲,就是丢一个离function frame stack 16byte的位置
所以本题应该是无解,而且当args不是int的时候他传法不见得会相同
重点asm放在这给大家参考一下
movl $30, %esi
movl $20, %edi
call _Z8testCallii