1
在C中,如果函数不返回,线程的执行堆栈会发生什么?如果函数不返回,执行堆栈会发生什么?
void funcB() __attribute__ ((noreturn));
int funcA (...)
{
// do stuff
funcB();
// do more stuff
}
这种情况的一个例子是说,FuncA的是创建一个新的线程的内核函数和funcB是切换的新线程用户模式,并让它运行内核代码。
谢谢。
问题(和问题本身)中描述的事件并不清楚。请详细说明。 –
不返回的函数要么是终止函数,在这种情况下,整个过程即将被清理,或者像exec这样的东西,它也会取代整个程序映像。结果是我们不再需要堆栈了。 –
是的,你预计会发生什么?退出(0)也永远不会返回,堆栈使用直到该点保持保留,直到程序退出... –