新聞中心
PRESS CENTER
“C語(yǔ)言運(yùn)行時(shí)Cruntime)”需要一-定的條件,這些條件由匯編來(lái)提供。c語(yǔ)言運(yùn)行時(shí)主要是需要棧
C語(yǔ)言與棧的關(guān)系:c語(yǔ)言中的局部變量都是用棧來(lái)實(shí)現(xiàn)的。如果我們匯編部分沒(méi)有給c部分預(yù)先設(shè)置合理合法的棧地址,那么C代碼中定義的局部變量就會(huì)落空,整個(gè)程序就死掉了。

我們平時(shí)在編寫(xiě)單片機(jī)程序(譬如51單片機(jī))或者編寫(xiě)應(yīng)用程序時(shí)并沒(méi)有去設(shè)置棧,但是c程序還是可以運(yùn)行的。原因是:在單片機(jī)中由硬件初始化時(shí)提供了一一個(gè)默認(rèn)可用的棧,在應(yīng)用程序中我們編寫(xiě)的c程序其實(shí)并不是全部,編譯器(gcc)在鏈接的時(shí)候會(huì)幫我們自動(dòng)添加一一個(gè)頭這個(gè)頭就是一段引 導(dǎo)我們的c程序能夠執(zhí)行的一段匯編實(shí)現(xiàn)的代碼,這個(gè)代碼中就幫我們的c程序設(shè)置了棧及其他的運(yùn)行時(shí)需要。