2012-10-04 55 views
1

在C中,如果函數不返回,線程的執行堆棧會發生什麼?如果函數不返回,執行堆棧會發生什麼?

void funcB() __attribute__ ((noreturn)); 

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

這種情況的一個例子是說,FuncA的是創建一個新的線程的內核函數和funcB是切換的新線程用戶模式,並讓它運行內核代碼。

謝謝。

+1

問題(和問題本身)中描述的事件並不清楚。請詳細說明。 –

+1

不返回的函數要麼是終止函數,在這種情況下,整個過程即將被清理,或者像exec這樣的東西,它也會取代整個程序映像。結果是我們不再需要堆棧了。 –

+0

是的,你預計會發生什麼?退出(0)也永遠不會返回,堆棧使用直到該點保持保留,直到程序退出... –

回答

相關問題