找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)C語(yǔ)言代碼如何簡(jiǎn)化?

[復(fù)制鏈接]
ID:709761 發(fā)表于 2022-11-7 09:00 | 顯示全部樓層 |閱讀模式
條件太多,如何簡(jiǎn)化
51hei圖片_20221107090007.png
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2022-11-7 10:30 | 顯示全部樓層
全單數(shù)。。∵@就是規(guī)律了:if(t%2) mm[i++]=int0
回復(fù)

使用道具 舉報(bào)

ID:883242 發(fā)表于 2022-11-7 11:59 | 顯示全部樓層
if(t<30&&t&1)mm[i++]=int0;
回復(fù)

使用道具 舉報(bào)

ID:399179 發(fā)表于 2022-11-7 13:56 來(lái)自觸屏版 | 顯示全部樓層
能回答的都大佬!
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2022-11-7 14:06 | 顯示全部樓層
與你的【精簡(jiǎn)】目標(biāo)有關(guān)。
什么樣為最簡(jiǎn)呢?
源代碼用字符最少?燒錄時(shí)的字節(jié)最少?
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2022-11-7 20:58 | 顯示全部樓層
有規(guī)律的話(huà),找規(guī)律,
無(wú)規(guī)律的話(huà),如下:

case:1
case:3
case:5
...............
mm[i++]=int0;
break;
回復(fù)

使用道具 舉報(bào)

ID:906768 發(fā)表于 2022-11-8 16:15 | 顯示全部樓層
1)選擇合適的算法和數(shù)據(jù)結(jié)構(gòu)  應(yīng)熟悉算法語(yǔ)言。將比較慢的順序查找法用較快的二分查找法或亂序查找法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,這樣可以大大提高程序執(zhí)行的效率。     選擇一種合適的數(shù)據(jù)結(jié)構(gòu)也很重要。數(shù)組與指針具有十分密切的關(guān)系,一般來(lái)說(shuō)指針比較靈活簡(jiǎn)潔,而數(shù)組則比較直觀(guān),容易理解。對(duì)于大部分分的編譯器,使用指針比使用數(shù)組生成的代碼更短,執(zhí)行效率更高。但是在Keil 中則相反,使用數(shù)組比使用的指針生成的代碼更短。     2)使用盡量小的數(shù)據(jù)類(lèi)型  能夠使用字符型(char)定義的變量,就不要使用整型(int)變量來(lái)定義;能夠使用整型變量定義的變量就不要用長(zhǎng)整型(long int),能不使用浮點(diǎn)型(float)變量就不要使用浮點(diǎn)型變量。當(dāng)然,在定義變量后不要超過(guò)變量的作用范圍,如果超過(guò)變量的范圍賦值,C 編譯器并不報(bào)錯(cuò),但程序運(yùn)行結(jié)果卻錯(cuò)了,而且這樣的錯(cuò)誤很難發(fā)現(xiàn)。     3)使用自加、自減指令  通常使用自加、自減指令和復(fù)合賦值表達(dá)式(如a-=1 及a+=1 等)都能夠生成高質(zhì)量的程序代碼,編譯器通常都能夠生成inc 和dec 之類(lèi)的指令,而使用a=a+1 或a=a-1之類(lèi)的指令,有很多C 編譯器都會(huì)生成2~3個(gè)字節(jié)的指令。     4)減少運(yùn)算的強(qiáng)度  可以使用運(yùn)算量小但功能相同的表達(dá)式替換原來(lái)復(fù)雜的的表達(dá)式。
回復(fù)

使用道具 舉報(bào)

ID:160893 發(fā)表于 2022-11-8 16:51 | 顯示全部樓層
if(t%2)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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