久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1859|回復: 18
打印 上一主題 下一主題
收起左側

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

  [復制鏈接]
跳轉到指定樓層
樓主
ID:477441 發表于 2024-7-1 09:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
void delay(uint n){     
   while(n--)
     {         
          Delay1ms();
     }
}
請教老師上面的這個寫法和下面的這種寫法有什么區別?
void delay()
{   
       uint n;
      while(n--)
     {         
          Delay1ms();
     }
}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:466997 發表于 2024-7-1 15:34 | 只看該作者
第二種方式主要是n賦值問題,如果實際運用中,第一種方式是可行的。
回復

使用道具 舉報

板凳
ID:74687 發表于 2024-7-1 17:43 | 只看該作者
上面帶參,n是在調用的時候被賦值了,下面這個函數最好別用,在函數里定義個變量,還不初始化,被調用的時候,n還不知道被賦值多少。
回復

使用道具 舉報

地板
ID:477441 發表于 2024-7-2 08:29 | 只看該作者
感謝老師!!!

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

最好還是用上面的那個。
謝謝了
回復

使用道具 舉報

5#
ID:744809 發表于 2024-7-2 17:24 | 只看該作者
bfdz 發表于 2024-7-2 08:29
感謝老師!!!

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

兩個函數的n都是局部變量,都只能在delay函數中使用,另外就是最好不要用這種軟延時,嚴重破壞程序實時性;建議用定時器方式做延時
回復

使用道具 舉報

6#
ID:1109793 發表于 2024-7-3 08:06 | 只看該作者
上面那個是參數,是被調用者賦值的,就是調用者可以控制這個數的大小。下面那個只是局部變量,調用者無法掌控,即使在函數里面被準確賦值,也只能實現固定的值。何況你都不賦值,大概率是不確定的。
回復

使用道具 舉報

7#
ID:619259 發表于 2024-7-3 09:09 | 只看該作者
上面的靈活,下面的呆板
回復

使用道具 舉報

8#
ID:477441 發表于 2024-7-3 11:03 | 只看該作者
xiaobendan001 發表于 2024-7-3 08:06
上面那個是參數,是被調用者賦值的,就是調用者可以控制這個數的大小。下面那個只是局部變量,調用者無法掌 ...

多謝!多謝!感覺這下徹底想通了
回復

使用道具 舉報

9#
ID:59202 發表于 2024-7-4 11:02 | 只看該作者
下面的這種寫法沒法達到目的啊,n只被聲明了一下,當然在keil中會默認初始化為零,后面也不再賦值,結果就是進while馬上退出來,當然也不會出錯,總可以延時幾個微秒吧
回復

使用道具 舉報

10#
ID:1043262 發表于 2024-7-5 16:37 | 只看該作者
帶參數的函數,和不帶參數的函數區別啊
回復

使用道具 舉報

11#
ID:517951 發表于 2024-7-6 08:06 | 只看該作者
建議用第一種方法, 可以設定延時時間.
第二種方式有問題:n是局部變量, 局部變量不賦值,n的值就不確定,會導致執行結果不確定.
回復

使用道具 舉報

12#
ID:477441 發表于 2024-7-6 08:11 | 只看該作者
多謝各位老師!

我再重新學習一下帶參數和不帶參數函數的課程
回復

使用道具 舉報

13#
ID:404160 發表于 2024-7-15 10:01 | 只看該作者
下面的延時是固定的(從32768減到0的時間)。上面的延時可以有調用者設定延時時間。
回復

使用道具 舉報

14#
ID:811253 發表于 2024-7-17 00:22 | 只看該作者
一個傳參,一個是局部變量
回復

使用道具 舉報

15#
ID:406282 發表于 2024-7-17 14:14 | 只看該作者
以上大神講的太好了
回復

使用道具 舉報

16#
ID:587810 發表于 2024-7-18 14:04 | 只看該作者
第二種內部應該給n賦初始值,是一個固定值,第一種是調用時賦值,是一個靈活賦值。
回復

使用道具 舉報

17#
ID:1128908 發表于 2024-7-18 17:58 | 只看該作者
這兩個程序函數在功能和預期行為上有很大的區別。

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

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

使用道具 舉報

18#
ID:230500 發表于 2024-7-19 08:32 | 只看該作者
一個帶形參一個不帶,第一種寫法更實用,方便函數的調用
回復

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 丁香久久 | 华丽的挑战在线观看 | 亚洲成人99 | 欧美99久久精品乱码影视 | 国产视频中文字幕 | 欧美日韩国产一区二区三区 | 国产精品免费一区二区三区 | 国产盗摄视频 | 香蕉视频黄色 | 中文字幕亚洲欧美 | 97国产一区二区精品久久呦 | 国产高清视频在线 | 日日夜夜免费精品视频 | 精品久久久久久亚洲国产800 | 国产一区免费 | 狠狠av| 精品无码久久久久国产 | 日韩在线免费播放 | 国产福利精品一区 | 中文字幕欧美一区 | av影音资源 | 成人精品高清 | 99久久成人| 成人av网站在线观看 | 欧美成人一区二区三区 | 亚洲精品www | 91欧美| 免费一级毛片 | 成人免费视频 | 欧洲一区二区三区 | 色爱综合网 | 欧美成年网站 | 天天色天天射天天干 | 涩爱av一区二区三区 | 国产在线精品区 | 99爱国产 | 国产乱码精品一区二区三区忘忧草 | 全部免费毛片在线播放网站 | 日一日操一操 | 国产电影一区二区 | 成人精品鲁一区一区二区 |