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

標題: 這串C語言代碼能不能在優化一下? [打印本頁]

作者: shenqiwei    時間: 2024-10-4 02:39
標題: 這串C語言代碼能不能在優化一下?
謝謝大蝦

1.png (41.03 KB, 下載次數: 1)

1.png

作者: xiaobendan001    時間: 2024-10-4 14:26
BCD碼放數組里面,然后弄個函數,把數組地址和數據傳進去,里面用一個循環搞定,這樣應該簡化不少吧。
大概類似這種代碼編譯器好像也可以幫你簡化。就是實際上出來的HEX并不大。
作者: shenqiwei    時間: 2024-10-5 01:59
xiaobendan001 發表于 2024-10-4 14:26
BCD碼放數組里面,然后弄個函數,把數組地址和數據傳進去,里面用一個循環搞定,這樣應該簡化不少吧。
大 ...

最好還是用語法搞定
作者: 405616736    時間: 2024-10-5 03:46
本帖最后由 405616736 于 2024-10-5 23:30 編輯

int str[4]
        
if(aa==20)
        {
                aa=0;
                if(++temp==9999) temp=0;
                sprintf(str,"%04d",temp);        }



作者: xiaobendan001    時間: 2024-10-5 07:52
405616736 發表于 2024-10-5 03:46
int str[4]
       
if(aa==20)

你這看起來簡化了,編譯出來可不一定吧
作者: 黃youhui    時間: 2024-10-5 08:08
405616736 發表于 2024-10-5 03:46
int str[4]
       
if(aa==20)

將if判斷語句那里換成==就是正解。
作者: xiaobendan001    時間: 2024-10-5 09:12
405616736 發表于 2024-10-5 03:46
int str[4]
       
if(aa==20)

而且你這個sprintf輸出的字符,不是BCD碼吧。這樣要是顯示到比如數碼管上面還得再處理一下吧。
作者: 405616736    時間: 2024-10-5 14:41
黃youhui 發表于 2024-10-5 08:08
將if判斷語句那里換成==就是正解。

手快寫漏了
作者: 188610329    時間: 2024-10-5 23:28
你要優化什么?
優化 C 語句看上去的簡潔程度?
還是代碼執行效率?
變量的占用量?
還是排版上毫無意義的一大堆括號?
作者: shenqiwei    時間: 2024-10-6 04:57
xiaobendan001 發表于 2024-10-5 07:52
你這看起來簡化了,編譯出來可不一定吧

我的意思是IF能不能同時判斷AA,BB。這樣代碼量就會很少
作者: shenqiwei    時間: 2024-10-6 04:59
188610329 發表于 2024-10-5 23:28
你要優化什么?
優化 C 語句看上去的簡潔程度?
還是代碼執行效率?

我要C語句,簡潔程度。
作者: wufa1986    時間: 2024-10-6 10:25
千百十個的運算做成一個函數,程序看上去會簡潔點
作者: xiaobendan001    時間: 2024-10-6 13:27
shenqiwei 發表于 2024-10-6 04:57
我的意思是IF能不能同時判斷AA,BB。這樣代碼量就會很少

不懂同時怎樣判斷。把BCD那部分弄個函數,就很簡潔了。

  1. uchar bcd[4],bcd2[4];
  2. void ibtd(uint i,uchar* mem){ //取余法獲得BCD碼
  3. uchar j;
  4. for(j=2;j<255;j--){                          
  5.         mem[j]=i%10;
  6.     i=i/10;
  7.     }   
  8. }
復制代碼

作者: Y_G_G    時間: 2024-10-7 10:52
循環用取模表達式,代碼字母不可能不會少,但行數變少了
temp = (temp + 1) % 10000;
變量aa和bb如果是循環變化,同樣也可以用取模
作者: HappyBoat    時間: 2024-10-27 19:37
1.去掉只有一句的if的括號
2.去掉沒有用的if,比如12行、17行兩對
3.把aa和bb寫成a[0]和a[1],其他對應也寫成數組,用個for
4.4個位也可以用數組+for




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美性猛交xxxx乱大交退制版 | 成人免费在线 | av久久久| 亚洲一区二区三区在线视频 | 九九热九九 | 亚洲精品国产精品国自产观看 | 国产一区在线播放 | 亚洲精品日韩丝袜精品 | 日本中文字幕在线播放 | 99福利视频 | 色综合五月 | 欧美色婷婷 | 青青草久草| 国产综合自拍 | 日本在线天堂 | 伊人久久影视 | 日本一级淫片色费放 | 成人国产在线 | 超碰人人网 | 一区二区三区成人 | 国产一区在线观看视频 | 亚洲一区二区中文字幕 | 成人h视频在线观看 | 色哟哟一区二区三区 | 欧美精品日韩 | 国产一区在线看 | 国产精品1区2区 | 91欧美激情一区二区三区成人 | 日韩一区二区三区在线 | 人人澡人人爽 | 久久高清免费视频 | 又黄又爽又色视频 | 麻豆chinese新婚xxx | 日韩精品一区二区在线 | 亚洲色网址 | 中日韩毛片 | 精品久久久久久久久久久久久 | 涩涩久久 | 成人午夜免费视频 | 欧美综合视频 | 国产激情久久久 |