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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這串C語言代碼能不能在優化一下?

[復制鏈接]
跳轉到指定樓層
樓主
謝謝大蝦

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

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

使用道具 舉報

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

使用道具 舉報

板凳
ID:278457 發表于 2024-10-5 01:59 | 只看該作者
xiaobendan001 發表于 2024-10-4 14:26
BCD碼放數組里面,然后弄個函數,把數組地址和數據傳進去,里面用一個循環搞定,這樣應該簡化不少吧。
大 ...

最好還是用語法搞定
回復

使用道具 舉報

地板
ID:579397 發表于 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);        }


回復

使用道具 舉報

5#
ID:1109793 發表于 2024-10-5 07:52 | 只看該作者
405616736 發表于 2024-10-5 03:46
int str[4]
       
if(aa==20)

你這看起來簡化了,編譯出來可不一定吧
回復

使用道具 舉報

6#
ID:592807 發表于 2024-10-5 08:08 | 只看該作者
405616736 發表于 2024-10-5 03:46
int str[4]
       
if(aa==20)

將if判斷語句那里換成==就是正解。
回復

使用道具 舉報

7#
ID:1109793 發表于 2024-10-5 09:12 | 只看該作者
405616736 發表于 2024-10-5 03:46
int str[4]
       
if(aa==20)

而且你這個sprintf輸出的字符,不是BCD碼吧。這樣要是顯示到比如數碼管上面還得再處理一下吧。
回復

使用道具 舉報

8#
ID:579397 發表于 2024-10-5 14:41 | 只看該作者
黃youhui 發表于 2024-10-5 08:08
將if判斷語句那里換成==就是正解。

手快寫漏了
回復

使用道具 舉報

9#
ID:624769 發表于 2024-10-5 23:28 | 只看該作者
你要優化什么?
優化 C 語句看上去的簡潔程度?
還是代碼執行效率?
變量的占用量?
還是排版上毫無意義的一大堆括號?
回復

使用道具 舉報

10#
ID:278457 發表于 2024-10-6 04:57 | 只看該作者
xiaobendan001 發表于 2024-10-5 07:52
你這看起來簡化了,編譯出來可不一定吧

我的意思是IF能不能同時判斷AA,BB。這樣代碼量就會很少
回復

使用道具 舉報

11#
ID:278457 發表于 2024-10-6 04:59 | 只看該作者
188610329 發表于 2024-10-5 23:28
你要優化什么?
優化 C 語句看上去的簡潔程度?
還是代碼執行效率?

我要C語句,簡潔程度。
回復

使用道具 舉報

12#
ID:879348 發表于 2024-10-6 10:25 | 只看該作者
千百十個的運算做成一個函數,程序看上去會簡潔點
回復

使用道具 舉報

13#
ID:1109793 發表于 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. }
復制代碼
回復

使用道具 舉報

14#
ID:401564 發表于 2024-10-7 10:52 | 只看該作者
循環用取模表達式,代碼字母不可能不會少,但行數變少了
temp = (temp + 1) % 10000;
變量aa和bb如果是循環變化,同樣也可以用取模
回復

使用道具 舉報

15#
ID:1134818 發表于 2024-10-27 19:37 | 只看該作者
1.去掉只有一句的if的括號
2.去掉沒有用的if,比如12行、17行兩對
3.把aa和bb寫成a[0]和a[1],其他對應也寫成數組,用個for
4.4個位也可以用數組+for
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人一区av| 九九伦理片 | www成人啪啪18| 亚洲一区 中文字幕 | 精品欧美一区二区在线观看欧美熟 | 视频一区二区三区中文字幕 | 国产精品亚洲一区二区三区在线观看 | 全免费a级毛片免费看视频免费下 | 最新中文在线视频 | 亚洲精品免费在线 | 成人夜晚看av | 精品无码久久久久久国产 | 一区二区三区在线观看免费视频 | 最近最新中文字幕 | 在线欧美视频 | aaaa一级毛片| 欧美成人一区二免费视频软件 | 成人影院在线观看 | 激情免费视频 | 男人天堂社区 | 99热这里都是精品 | 日韩成人av在线播放 | 国产免费拔擦拔擦8x高清 | 久久久久网站 | 日韩在线免费电影 | 国产精品视频一二三区 | 午夜精品三区 | 国产成人99久久亚洲综合精品 | 久久一日本道色综合久久 | 欧美日韩一二三区 | 久久精品久久久久久 | 国产久| 91综合网 | 国产精品久久久久久影院8一贰佰 | 在线视频一区二区 | 日韩在线播放网址 | 成人精品一区二区三区中文字幕 | 精品一区二区三区免费视频 | 国产精品国产三级国产aⅴ中文 | 精品国产高清一区二区三区 | 国产成人精品久久二区二区91 |