1
在C中,如果函數不返回,線程的執行堆棧會發生什麼?如果函數不返回,執行堆棧會發生什麼?
void funcB() __attribute__ ((noreturn));
int funcA (...)
{
// do stuff
funcB();
// do more stuff
}
這種情況的一個例子是說,FuncA的是創建一個新的線程的內核函數和funcB是切換的新線程用戶模式,並讓它運行內核代碼。
謝謝。
問題(和問題本身)中描述的事件並不清楚。請詳細說明。 –
不返回的函數要麼是終止函數,在這種情況下,整個過程即將被清理,或者像exec這樣的東西,它也會取代整個程序映像。結果是我們不再需要堆棧了。 –
是的,你預計會發生什麼?退出(0)也永遠不會返回,堆棧使用直到該點保持保留,直到程序退出... –