在wikibook x86 Disassembly
中,有人写道,有时子程序没有设置标准堆栈帧。一个这样的情况是我们在C中声明一个静态函数。本书中已经写了以下几行。
When an optimizing compiler sees a static function that is only referenced by calls (no references through function pointers), it "knows" that external functions cannot possibly interface with the static function (the compiler controls all access to the function), so the compiler doesn't bother making it standard
。
我对以上陈述有以下问题:
编辑:我想回答的另一个问题:为什么上面提到的情况下的编译器设置非标准堆栈帧而不是标准堆栈帧?
答案 0 :(得分:1)
static
阻止其他对象找到它,但它不会阻止它们被传递。