欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

菜鳥請教C51問題 上面的這個寫法和下面的這種寫法有什么區(qū)別?

  [復(fù)制鏈接]
ID:477441 發(fā)表于 2024-7-1 09:17 | 顯示全部樓層 |閱讀模式
void delay(uint n){     
   while(n--)
     {         
          Delay1ms();
     }
}
請教老師上面的這個寫法和下面的這種寫法有什么區(qū)別?
void delay()
{   
       uint n;
      while(n--)
     {         
          Delay1ms();
     }
}



回復(fù)

使用道具 舉報(bào)

ID:466997 發(fā)表于 2024-7-1 15:34 | 顯示全部樓層
第二種方式主要是n賦值問題,如果實(shí)際運(yùn)用中,第一種方式是可行的。
回復(fù)

使用道具 舉報(bào)

ID:74687 發(fā)表于 2024-7-1 17:43 | 顯示全部樓層
上面帶參,n是在調(diào)用的時候被賦值了,下面這個函數(shù)最好別用,在函數(shù)里定義個變量,還不初始化,被調(diào)用的時候,n還不知道被賦值多少。
回復(fù)

使用道具 舉報(bào)

ID:477441 發(fā)表于 2024-7-2 08:29 | 顯示全部樓層
感謝老師!!!

有些明白了,是不是上面的那個 n 可以在全局使用  ,下面的那個 n 只是在自己的子函數(shù)使用,而且 n 的值還容易不明確,

最好還是用上面的那個。
謝謝了
回復(fù)

使用道具 舉報(bào)

ID:744809 發(fā)表于 2024-7-2 17:24 | 顯示全部樓層
bfdz 發(fā)表于 2024-7-2 08:29
感謝老師!!!

有些明白了,是不是上面的那個 n 可以在全局使用  ,下面的那個 n 只是在自己的子函數(shù)使 ...

兩個函數(shù)的n都是局部變量,都只能在delay函數(shù)中使用,另外就是最好不要用這種軟延時,嚴(yán)重破壞程序?qū)崟r性;建議用定時器方式做延時
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-7-3 08:06 | 顯示全部樓層
上面那個是參數(shù),是被調(diào)用者賦值的,就是調(diào)用者可以控制這個數(shù)的大小。下面那個只是局部變量,調(diào)用者無法掌控,即使在函數(shù)里面被準(zhǔn)確賦值,也只能實(shí)現(xiàn)固定的值。何況你都不賦值,大概率是不確定的。
回復(fù)

使用道具 舉報(bào)

ID:619259 發(fā)表于 2024-7-3 09:09 | 顯示全部樓層
上面的靈活,下面的呆板
回復(fù)

使用道具 舉報(bào)

ID:477441 發(fā)表于 2024-7-3 11:03 | 顯示全部樓層
xiaobendan001 發(fā)表于 2024-7-3 08:06
上面那個是參數(shù),是被調(diào)用者賦值的,就是調(diào)用者可以控制這個數(shù)的大小。下面那個只是局部變量,調(diào)用者無法掌 ...

多謝!多謝!感覺這下徹底想通了
回復(fù)

使用道具 舉報(bào)

ID:59202 發(fā)表于 2024-7-4 11:02 | 顯示全部樓層
下面的這種寫法沒法達(dá)到目的啊,n只被聲明了一下,當(dāng)然在keil中會默認(rèn)初始化為零,后面也不再賦值,結(jié)果就是進(jìn)while馬上退出來,當(dāng)然也不會出錯,總可以延時幾個微秒吧
回復(fù)

使用道具 舉報(bào)

ID:1043262 發(fā)表于 2024-7-5 16:37 | 顯示全部樓層
帶參數(shù)的函數(shù),和不帶參數(shù)的函數(shù)區(qū)別啊
回復(fù)

使用道具 舉報(bào)

ID:517951 發(fā)表于 2024-7-6 08:06 | 顯示全部樓層
建議用第一種方法, 可以設(shè)定延時時間.
第二種方式有問題:n是局部變量, 局部變量不賦值,n的值就不確定,會導(dǎo)致執(zhí)行結(jié)果不確定.
回復(fù)

使用道具 舉報(bào)

ID:477441 發(fā)表于 2024-7-6 08:11 | 顯示全部樓層
多謝各位老師!

我再重新學(xué)習(xí)一下帶參數(shù)和不帶參數(shù)函數(shù)的課程
回復(fù)

使用道具 舉報(bào)

ID:404160 發(fā)表于 2024-7-15 10:01 | 顯示全部樓層
下面的延時是固定的(從32768減到0的時間)。上面的延時可以有調(diào)用者設(shè)定延時時間。
回復(fù)

使用道具 舉報(bào)

ID:811253 發(fā)表于 2024-7-17 00:22 | 顯示全部樓層
一個傳參,一個是局部變量
回復(fù)

使用道具 舉報(bào)

ID:406282 發(fā)表于 2024-7-17 14:14 | 顯示全部樓層
以上大神講的太好了
回復(fù)

使用道具 舉報(bào)

ID:587810 發(fā)表于 2024-7-18 14:04 | 顯示全部樓層
第二種內(nèi)部應(yīng)該給n賦初始值,是一個固定值,第一種是調(diào)用時賦值,是一個靈活賦值。
回復(fù)

使用道具 舉報(bào)

ID:1128908 發(fā)表于 2024-7-18 17:58 | 顯示全部樓層
這兩個程序函數(shù)在功能和預(yù)期行為上有很大的區(qū)別。

第一個函數(shù) void delay(uint n)
這個函數(shù)是帶參數(shù)的。它接受一個無符號整數(shù) n 作為輸入,并循環(huán) n 次,每次循環(huán)中調(diào)用 Delay1ms() 函數(shù)來產(chǎn)生大約1毫秒的延遲。因此,這個函數(shù)的總延遲時間大致是 n 毫秒(假設(shè) Delay1ms() 函數(shù)確實(shí)產(chǎn)生了精確的1毫秒延遲)。

第二個函數(shù) void delay()
這個函數(shù)沒有參數(shù)。它試圖使用一個未初始化的局部變量 n,并在 while 循環(huán)中遞減 n。但是,由于 n 沒有被初始化,它的值是不確定的,可能是任何數(shù)字
回復(fù)

使用道具 舉報(bào)

ID:230500 發(fā)表于 2024-7-19 08:32 | 顯示全部樓層
一個帶形參一個不帶,第一種寫法更實(shí)用,方便函數(shù)的調(diào)用
回復(fù)

使用道具 舉報(bào)

ID:136106 發(fā)表于 2024-7-19 10:40 | 顯示全部樓層
上面的delay()函數(shù)是帶形參的,調(diào)用的時候可以設(shè)置形參的值來修改延時的長短,調(diào)用該函數(shù)的時候更加的靈活自由;下面的的相對來說就死板一些,但是在一些場合,比如說編寫模擬IIC之類的時候,這樣要固定延時長短的會比較合適
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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