標(biāo)題: 關(guān)于C語言while循環(huán)的疑問 [打印本頁]

作者: Enchip    時(shí)間: 2020-1-16 15:42
標(biāo)題: 關(guān)于C語言while循環(huán)的疑問
整個(gè)程序只有一個(gè)t的定義,無實(shí)際值。這個(gè)代碼究竟是什么意思?
void Delay(unsigned int t)
{
while(--t);
}
上面四行代碼的t在整個(gè)代碼中都沒有實(shí)際賦值,所以while執(zhí)行到什么時(shí)候?

作者: 海盜船    時(shí)間: 2020-1-16 18:24
比如Delay(1000),就是調(diào)用void Delay(unsigned int t)這個(gè)函數(shù),1000會(huì)直接替換成t,不知道你理解不理解,不理解只能說明基礎(chǔ)薄弱
作者: znz43a    時(shí)間: 2020-1-16 18:53
這是帶參子程序,調(diào)用時(shí)要對參數(shù) t 賦值。調(diào)用后子程序循環(huán)對 t = t-1,直到 t=0,退出子程序。
作者: csmyldl    時(shí)間: 2020-1-16 19:15
在調(diào)用時(shí)就有值了,如Delay(1000),這樣t的值就是1000,while循環(huán)執(zhí)行1000次后退出
作者: angmall    時(shí)間: 2020-1-16 19:41
這是軟件延時(shí),阻塞延時(shí),就相當(dāng)于CPU在空跑,
1. 新手的程序都是While大循環(huán)里,而且代碼執(zhí)行時(shí)間也比較短,這個(gè)時(shí)候用軟件延時(shí)看不出來明顯的差異。

2. 一般不建議使用軟件延時(shí),因?yàn)镃PU的資源是有限的,軟件延時(shí)就相當(dāng)于CPU在空跑,當(dāng)程序比較龐大的時(shí)候,許多程序處理不過來,根本沒有多余的時(shí)間給你去延時(shí)。
作者: 夢醒了11    時(shí)間: 2020-1-16 20:08
unsigned int t為無符號整形,int t 輸入t,t為整形,也就是輸入一個(gè)整數(shù);while(--t)的意思是沒循環(huán)一次t-1,當(dāng)減到0時(shí),循環(huán)結(jié)束。
作者: 微微涼1    時(shí)間: 2020-1-16 20:24
當(dāng)t=0時(shí),就會(huì)退出循環(huán)
作者: OHHO    時(shí)間: 2020-1-16 21:40
函數(shù)定義而已...
實(shí)際調(diào)用時(shí)根據(jù)你調(diào)用情況會(huì)賦值 就像前面樓上幾位說的一樣
作者: lyxing    時(shí)間: 2020-1-16 23:33
void Delay(unsigned int t)   t 為無符號整數(shù)型形參
實(shí)際調(diào)用時(shí)void Delay(1000)     1000則為無符號整數(shù) 實(shí)參
作者: tianjinfeiying    時(shí)間: 2020-1-17 02:35
void Delay(unsigned int t) 你發(fā)的這段程序是函數(shù)定義。別的地方有調(diào)用這個(gè)程序的!比如Delay(100),此時(shí)t被賦值,t=100。
作者: 黃youhui    時(shí)間: 2020-1-17 08:35
t時(shí)型參,當(dāng)你調(diào)用時(shí)就會(huì)給他賦值了。比如Delay(100);
作者: cphnkj188    時(shí)間: 2020-1-17 08:40
1樓正解,這是函數(shù)定義,在主程序里用時(shí)括號里填的數(shù)值就是t的賦值
作者: f556    時(shí)間: 2020-1-17 09:09
這是典型的空循環(huán),也就是延時(shí)函數(shù)。
作者: TTQ001    時(shí)間: 2020-1-17 10:00
這是帶參數(shù)的延時(shí)子程序,調(diào)用時(shí)對參數(shù) t 賦值。循環(huán)執(zhí)行 t = t-1, 直到 t=0,子程序調(diào)用結(jié)束。
作者: 還有誰?    時(shí)間: 2020-1-17 10:20
這是形參函數(shù),調(diào)用該函數(shù)時(shí)可用實(shí)際數(shù)值替換掉t變量
作者: popipa    時(shí)間: 2020-1-17 16:10
這是一個(gè)子函數(shù),在調(diào)用該函數(shù)的時(shí)候,會(huì)帶入?yún)?shù),也就是t的值
作者: 13967554080    時(shí)間: 2020-1-18 12:30
執(zhí)行到t = 0;就停止了
作者: 睜開眼來看世界    時(shí)間: 2020-1-19 10:13
你需要看看C語言,bilibili、墨課上有很多基礎(chǔ)知識視屏
作者: Enchip    時(shí)間: 2020-1-19 11:02
謝謝各位指導(dǎo),這個(gè)知識點(diǎn)已經(jīng)學(xué)到!基礎(chǔ)確實(shí)薄弱。在學(xué)習(xí)中。在論壇,找到了組織。
作者: xiaoyao逍遙    時(shí)間: 2020-1-19 17:50
你要調(diào)用這個(gè)函數(shù)時(shí)再給t賦值,等t減到0就停了

作者: lele5211314    時(shí)間: 2020-1-19 18:38
那就要看程序默認(rèn)的初值是多少了
作者: 墨梔    時(shí)間: 2020-1-20 10:51
調(diào)用Delay的時(shí)候會(huì)賦值t的。例如Delay(5),就把t賦值為5
作者: haierzaifei11    時(shí)間: 2020-1-21 10:06
調(diào)用時(shí)就有值,1和5樓很詳細(xì)的分析
作者: kendy7910    時(shí)間: 2020-1-21 14:45
會(huì)一直執(zhí)行到t=0的時(shí)候,然后會(huì)推出while循環(huán)
作者: baiyun1234    時(shí)間: 2020-1-21 18:02
angmall 發(fā)表于 2020-1-16 19:41
這是軟件延時(shí),阻塞延時(shí),就相當(dāng)于CPU在空跑,
1. 新手的程序都是While大循環(huán)里,而且代碼執(zhí)行時(shí)間也比較 ...

第二點(diǎn)相當(dāng)贊同。
作者: 滿天星..    時(shí)間: 2020-1-28 14:46
這是帶參函數(shù),函數(shù)被調(diào)用時(shí)會(huì)將實(shí)參傳遞給形參,就是在函數(shù)調(diào)用時(shí)那個(gè)t才會(huì)被賦值。
作者: 化塵封土    時(shí)間: 2020-1-28 16:26
這是個(gè)子函數(shù),簡單來說這個(gè)是一個(gè)你建立的模型,在main函數(shù)引用時(shí)就相當(dāng)于把這個(gè)模型引用到你的主體里面,根據(jù)需要再賦予t實(shí)際值。




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