日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀](1)初始值不是0的全局變量 在程序調(diào)到main()函數(shù)執(zhí)行前,除了要進(jìn)行內(nèi)存清零、初始化堆棧外,還需要將全局變量的初始值加載到RAM的指定區(qū)域(編譯過程中為全局變量分配的空間)。(2)未初始化的局部變量 實(shí)際的

(1)初始值不是0的全局變量

在程序調(diào)到main()函數(shù)執(zhí)行前,除了要進(jìn)行內(nèi)存清零、初始化堆棧外,還需要將全局變量的初始值加載到RAM的指定區(qū)域(編譯過程中為全局變量分配的空間)。

(2)未初始化的局部變量

實(shí)際的編譯后的反匯編程序也看不到這些局部變量的初始化。這些局部變量占據(jù)哪些還未被使用的內(nèi)存或者其他函數(shù)中局部變量釋放的空間。倘若是后者,其他函數(shù)局部變量釋放的空間并沒有清零,所以使用這些釋放空間的局部變量就一開始被賦值了,這是需要程序員小心的。

voidfunction(){unsignedchark,j;//k,j都未被初始化if(k

(3)函數(shù)的優(yōu)化

實(shí)驗(yàn)代碼


voidfunction(){unsignedchari,j,k;i=j+k;}


編譯結(jié)果:如下函數(shù)的內(nèi)容經(jīng)過keil的編譯后,就變成了“REI”,也就是說function的內(nèi)容全被忽略掉。

解釋:keil對(duì)程序進(jìn)行了優(yōu)化,由于function的內(nèi)容并沒有任何作用,所以優(yōu)化時(shí)就把這些內(nèi)容忽略掉。倘若在變量前邊加上“volatile”,這部分內(nèi)容就不會(huì)被忽略。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉