標(biāo)題: 這兩種C語言程序?qū)懛莻好呢? [打印本頁]

作者: 周翔宇    時間: 2022-3-17 20:47
標(biāo)題: 這兩種C語言程序?qū)懛莻好呢?
第一種:
void delay(int ms){
     int a = ms;
     int i=0;
     for(i=0;i<a;i++)
     {
        _nop();
        _nop();
        _nop();
        _nop();
     }
}
第二種:
void delay(int ms){
     int i=0;
     for(i=0;i<ms;i++)
     {
        _nop();
        _nop();
        _nop();
        _nop();
     }
}


作者: 周翔宇    時間: 2022-3-17 20:48
個人覺得第一種就是脫褲子放屁。
作者: lkc8210    時間: 2022-3-18 00:07
都不好,浪費(fèi)內(nèi)存
void delay(int ms){
     for(;ms>0;ms--)
     {
        _nop();
        _nop();
        _nop();
        _nop();
     }
}

void delay(int ms){
     do
     {
        _nop();
        _nop();
        _nop();
        _nop();
     }while(ms--);
}
作者: Hephaestus    時間: 2022-3-18 00:31
樓主可以把你的兩種寫法和沙發(fā)的兩種寫法都編譯試一試,看看各種寫法占用flash和ram的大小都是多少,以后就不用上論壇,自己就能判斷怎么寫更合理了。
作者: 周翔宇    時間: 2022-3-18 09:06
lkc8210 發(fā)表于 2022-3-18 00:07
都不好,浪費(fèi)內(nèi)存
void delay(int ms){
     for(;ms>0;ms--)

我主要表達(dá)意思是 1函數(shù)里形參直接用和在函數(shù)再定義一個變量,將形參的值給到這個變量。2直接用形參作為變量使用。
1和2這有什么不一樣么?或者說,第一種就不應(yīng)該這樣寫。

作者: 周翔宇    時間: 2022-3-18 09:08
Hephaestus 發(fā)表于 2022-3-18 00:31
樓主可以把你的兩種寫法和沙發(fā)的兩種寫法都編譯試一試,看看各種寫法占用flash和ram的大小都是多少,以后就 ...

我主要表達(dá)意思是 1函數(shù)里形參直接用和在函數(shù)再定義一個變量,將形參的值給到這個變量。2直接用形參作為變量使用。
1和2這有什么不一樣么?或者說,第一種就不應(yīng)該這樣寫。
這個就像定義無用變量在函數(shù)里
作者: 鄭漢松    時間: 2022-3-18 09:09
沒區(qū)別,不過最好把形參int換成unsigned  int
作者: zy0818    時間: 2022-3-18 10:48
Hephaestus 發(fā)表于 2022-3-18 00:31
樓主可以把你的兩種寫法和沙發(fā)的兩種寫法都編譯試一試,看看各種寫法占用flash和ram的大小都是多少,以后就 ...

方法不錯,可以用這個方法來學(xué)習(xí)程序優(yōu)化了




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