ZHCU820Y September 2004 – June 2021
C/C++ 编译器对函数调用强加了一套严格的规则。除了特殊的运行时支持函数,任何调用或被 C/C++ 函数调用的函数都必须遵循这些规则。不遵循这些规则可能会破坏 C/C++ 环境并导致程序失败。
以下各节使用此术语来描述 C/C++ 编译器的函数调用惯例:
图 7-2 演示了典型的函数调用。在此示例中,参数被传递给函数,该函数使用局部变量并调用另一个函数。前四个参数会传递给寄存器 R12-R15。此示例还显示了为被调用函数分配本地帧和参数块。没有局部变量且不需要参数块的函数不会分配本地帧。