例如,我有个函数调用:void f(...){
    int buf[1000000];//栈上溢出
...
}
程序运行到f的时候,栈上溢出,程序崩溃。我上网查了一下说,VC编出来的windowsPE文件里面,有一个字段是设置栈的大小的。我的问题是: 难道VC编出来的程序在运行过程中,会不断的让OS帮它检查当前堆栈的大小是不是超出了这个值?(1)如果每运行一个堆栈操作都要做检查,那岂不是太低效了?
(2)如果不是的话,那windows又如何知道一个程序什么时候栈的大小越界了呢?这似乎是个两难问题啊,还请高手指点!