標(biāo)題: 新手關(guān)于C語(yǔ)言for嵌套語(yǔ)句的問(wèn)題,請(qǐng)大家?guī)臀铱纯矗x謝了 [打印本頁(yè)]

作者: tanghao8887    時(shí)間: 2018-10-3 03:02
標(biāo)題: 新手關(guān)于C語(yǔ)言for嵌套語(yǔ)句的問(wèn)題,請(qǐng)大家?guī)臀铱纯矗x謝了
這個(gè)子函數(shù),我就搞不懂,兩個(gè)for,原理我懂,我搞不懂為什么要把這里的y定義成字符變量?明明可以和x一樣定義成無(wú)符號(hào)整形的,還有就是,第一個(gè)for里面,我把x=z,z在前面的值是delay(100),那么相當(dāng)于z=100,我首先將z代進(jìn)x為:
for(x=z;x>0;a--)   
for(y=100;y>0;y--);
我在把z代進(jìn)y,如下:
for(x=100;x>0;x--)   
for(y=z;y>0;y--);
為什么這兩種方式,我調(diào)試時(shí),為什么他們兩種的延時(shí)時(shí)間都不一樣,按理來(lái)說(shuō),都是一樣的值,結(jié)果會(huì)一樣的呀,不都是100*100=10000嗎?同理,如果我就算把z給取消了,變成不需要參數(shù)值的delay,那么假如,x=10,y=100,依次寫入兩個(gè)for嵌套循環(huán),x在第一個(gè)for,y在第二個(gè)for,,然后,我又交換,y在第一個(gè)for,x在第二for,為什么,第一種,10*100,第二種,100*10,循環(huán)次數(shù)一模一樣,為何他們延時(shí)的時(shí)間有差異,求各位老師,各位大神幫我分析分析,小弟感謝各位了!

IMG_20181003_013836.jpg (67.69 KB, 下載次數(shù): 28)

IMG_20181003_013836.jpg

IMG_20181003_025949.jpg (83.53 KB, 下載次數(shù): 38)

IMG_20181003_025949.jpg

IMG_20181003_030118.jpg (78.27 KB, 下載次數(shù): 36)

IMG_20181003_030118.jpg

作者: sxhwdz    時(shí)間: 2018-10-3 08:43
       x定義成uint是因?yàn)樵试S調(diào)用函數(shù)時(shí),參數(shù)可以大于255的需要。而y是確定不會(huì)大于255,使用uchar只占用一個(gè)字節(jié),節(jié)約內(nèi)存,還便于計(jì)算延時(shí)時(shí)間。
       這個(gè)延時(shí)函數(shù)是利用計(jì)算機(jī)執(zhí)行每一條指令所消耗的時(shí)間累計(jì)完成的,不同的指令占用的時(shí)間是不一樣的,不同的循環(huán)使用的機(jī)器指令也是不一樣的,所以簡(jiǎn)單地把2個(gè)循環(huán)值相乘只能是大致上的延時(shí)。精確的延時(shí)是要逐條累加每個(gè)循環(huán),每條指令的執(zhí)行時(shí)間。
        即便這樣,如果程序中有中斷要處理,也會(huì)影響延時(shí)的時(shí)間。
作者: 文鳳軒    時(shí)間: 2018-10-5 21:56
應(yīng)該是兩個(gè)變量所占的字節(jié)大小不同,系統(tǒng)處理的時(shí)間有差異吧




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1