找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3242|回復(fù): 26
收起左側(cè)

關(guān)于C語言while循環(huán)的疑問

  [復(fù)制鏈接]
ID:674308 發(fā)表于 2020-1-16 15:42 | 顯示全部樓層 |閱讀模式
整個(gè)程序只有一個(gè)t的定義,無實(shí)際值。這個(gè)代碼究竟是什么意思?
void Delay(unsigned int t)
{
while(--t);
}
上面四行代碼的t在整個(gè)代碼中都沒有實(shí)際賦值,所以while執(zhí)行到什么時(shí)候?
回復(fù)

使用道具 舉報(bào)

ID:282519 發(fā)表于 2020-1-16 18:24 | 顯示全部樓層
比如Delay(1000),就是調(diào)用void Delay(unsigned int t)這個(gè)函數(shù),1000會直接替換成t,不知道你理解不理解,不理解只能說明基礎(chǔ)薄弱
回復(fù)

使用道具 舉報(bào)

ID:378182 發(fā)表于 2020-1-16 18:53 | 顯示全部樓層
這是帶參子程序,調(diào)用時(shí)要對參數(shù) t 賦值。調(diào)用后子程序循環(huán)對 t = t-1,直到 t=0,退出子程序。
回復(fù)

使用道具 舉報(bào)

ID:235200 發(fā)表于 2020-1-16 19:15 | 顯示全部樓層
在調(diào)用時(shí)就有值了,如Delay(1000),這樣t的值就是1000,while循環(huán)執(zhí)行1000次后退出
回復(fù)

使用道具 舉報(bào)

ID:155507 發(fā)表于 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í)。
回復(fù)

使用道具 舉報(bào)

ID:686752 發(fā)表于 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é)束。
回復(fù)

使用道具 舉報(bào)

ID:686758 發(fā)表于 2020-1-16 20:24 | 顯示全部樓層
當(dāng)t=0時(shí),就會退出循環(huán)
回復(fù)

使用道具 舉報(bào)

ID:686782 發(fā)表于 2020-1-16 21:40 | 顯示全部樓層
函數(shù)定義而已...
實(shí)際調(diào)用時(shí)根據(jù)你調(diào)用情況會賦值 就像前面樓上幾位說的一樣
回復(fù)

使用道具 舉報(bào)

ID:67199 發(fā)表于 2020-1-16 23:33 | 顯示全部樓層
void Delay(unsigned int t)   t 為無符號整數(shù)型形參
實(shí)際調(diào)用時(shí)void Delay(1000)     1000則為無符號整數(shù) 實(shí)參
回復(fù)

使用道具 舉報(bào)

ID:686820 發(fā)表于 2020-1-17 02:35 | 顯示全部樓層
void Delay(unsigned int t) 你發(fā)的這段程序是函數(shù)定義。別的地方有調(diào)用這個(gè)程序的!比如Delay(100),此時(shí)t被賦值,t=100。
回復(fù)

使用道具 舉報(bào)

ID:592807 發(fā)表于 2020-1-17 08:35 | 顯示全部樓層
t時(shí)型參,當(dāng)你調(diào)用時(shí)就會給他賦值了。比如Delay(100);
回復(fù)

使用道具 舉報(bào)

ID:524818 發(fā)表于 2020-1-17 08:40 | 顯示全部樓層
1樓正解,這是函數(shù)定義,在主程序里用時(shí)括號里填的數(shù)值就是t的賦值
回復(fù)

使用道具 舉報(bào)

ID:282850 發(fā)表于 2020-1-17 09:09 | 顯示全部樓層
這是典型的空循環(huán),也就是延時(shí)函數(shù)。
回復(fù)

使用道具 舉報(bào)

ID:420836 發(fā)表于 2020-1-17 10:00 | 顯示全部樓層
這是帶參數(shù)的延時(shí)子程序,調(diào)用時(shí)對參數(shù) t 賦值。循環(huán)執(zhí)行 t = t-1, 直到 t=0,子程序調(diào)用結(jié)束。
回復(fù)

使用道具 舉報(bào)

ID:475247 發(fā)表于 2020-1-17 10:20 | 顯示全部樓層
這是形參函數(shù),調(diào)用該函數(shù)時(shí)可用實(shí)際數(shù)值替換掉t變量
回復(fù)

使用道具 舉報(bào)

ID:686963 發(fā)表于 2020-1-17 16:10 | 顯示全部樓層
這是一個(gè)子函數(shù),在調(diào)用該函數(shù)的時(shí)候,會帶入?yún)?shù),也就是t的值
回復(fù)

使用道具 舉報(bào)

ID:687093 發(fā)表于 2020-1-18 12:30 | 顯示全部樓層
執(zhí)行到t = 0;就停止了
回復(fù)

使用道具 舉報(bào)

ID:687295 發(fā)表于 2020-1-19 10:13 | 顯示全部樓層
你需要看看C語言,bilibili、墨課上有很多基礎(chǔ)知識視屏
回復(fù)

使用道具 舉報(bào)

ID:674308 發(fā)表于 2020-1-19 11:02 | 顯示全部樓層
謝謝各位指導(dǎo),這個(gè)知識點(diǎn)已經(jīng)學(xué)到!基礎(chǔ)確實(shí)薄弱。在學(xué)習(xí)中。在論壇,找到了組織。
回復(fù)

使用道具 舉報(bào)

ID:687381 發(fā)表于 2020-1-19 17:50 | 顯示全部樓層
你要調(diào)用這個(gè)函數(shù)時(shí)再給t賦值,等t減到0就停了
回復(fù)

使用道具 舉報(bào)

ID:93224 發(fā)表于 2020-1-19 18:38 | 顯示全部樓層
那就要看程序默認(rèn)的初值是多少了
回復(fù)

使用道具 舉報(bào)

ID:389856 發(fā)表于 2020-1-20 10:51 | 顯示全部樓層
調(diào)用Delay的時(shí)候會賦值t的。例如Delay(5),就把t賦值為5
回復(fù)

使用道具 舉報(bào)

ID:679425 發(fā)表于 2020-1-21 10:06 | 顯示全部樓層
調(diào)用時(shí)就有值,1和5樓很詳細(xì)的分析
回復(fù)

使用道具 舉報(bào)

ID:524071 發(fā)表于 2020-1-21 14:45 | 顯示全部樓層
會一直執(zhí)行到t=0的時(shí)候,然后會推出while循環(huán)
回復(fù)

使用道具 舉報(bào)

ID:609989 發(fā)表于 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)贊同。
回復(fù)

使用道具 舉報(bào)

ID:688320 發(fā)表于 2020-1-28 14:46 | 顯示全部樓層
這是帶參函數(shù),函數(shù)被調(diào)用時(shí)會將實(shí)參傳遞給形參,就是在函數(shù)調(diào)用時(shí)那個(gè)t才會被賦值。
回復(fù)

使用道具 舉報(bào)

ID:688433 發(fā)表于 2020-1-28 16:26 | 顯示全部樓層
這是個(gè)子函數(shù),簡單來說這個(gè)是一個(gè)你建立的模型,在main函數(shù)引用時(shí)就相當(dāng)于把這個(gè)模型引用到你的主體里面,根據(jù)需要再賦予t實(shí)際值。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表