3.2.2.1 参数传递规则 你有没有在调试一个看似“毫无逻辑”的崩溃时,盯着寄存器窗口发呆—— 是垃圾值, 却意外地保存着你刚传进去的 首地址?函数返回后,局部对象析构了三次; 指针在成员函数入口处就已为 ;用 打印 显示的地址,在 GDB 里 却根本找不到对应栈帧…… 这不是编译器发疯,也不是内存泄漏的幻觉。 这是参数传递规则在暗处拧紧的螺丝,松了一颗,整台机器就开始异响。 我们不谈 ABI 文档里那些工整的表格,也不复述“x86-64 System V ABI 第 3.2.3 节第 4 段”的原文。