2012-10-04 56 views
1

在C中,如果函数不返回,线程的执行堆栈会发生什么?如果函数不返回,执行堆栈会发生什么?

void funcB() __attribute__ ((noreturn)); 

int funcA (...) 
{ 
    // do stuff 
    funcB(); 
    // do more stuff 
} 

这种情况的一个例子是说,FuncA的是创建一个新的线程的内核函数和funcB是切换的新线程用户模式,并让它运行内核代码。

谢谢。

+1

问题(和问题本身)中描述的事件并不清楚。请详细说明。 –

+1

不返回的函数要么是终止函数,在这种情况下,整个过程即将被清理,或者像exec这样的东西,它也会取代整个程序映像。结果是我们不再需要堆栈了。 –

+0

是的,你预计会发生什么?退出(0)也永远不会返回,堆栈使用直到该点保持保留,直到程序退出... –

回答

相关问题