![]() |
1.去掉只有一句的if的括号 2.去掉没有用的if,比如12行、17行两对 3.把aa和bb写成a[0]和a[1],其他对应也写成数组,用个for 4.4个位也可以用数组+for |
循环用取模表达式,代码字母不可能不会少,但行数变少了 temp = (temp + 1) % 10000; 变量aa和bb如果是循环变化,同样也可以用取模 |
shenqiwei 发表于 2024-10-6 04:57 不懂同时怎样判断。把BCD那部分弄个函数,就很简洁了。
|
千百十个的运算做成一个函数,程序看上去会简洁点 |
188610329 发表于 2024-10-5 23:28 我要C语句,简洁程度。 ![]() |
xiaobendan001 发表于 2024-10-5 07:52 我的意思是IF能不能同时判断AA,BB。这样代码量就会很少 ![]() |
你要优化什么? 优化 C 语句看上去的简洁程度? 还是代码执行效率? 变量的占用量? 还是排版上毫无意义的一大堆括号? |
黄youhui 发表于 2024-10-5 08:08 手快写漏了 ![]() |
405616736 发表于 2024-10-5 03:46 而且你这个sprintf输出的字符,不是BCD码吧。这样要是显示到比如数码管上面还得再处理一下吧。 |
405616736 发表于 2024-10-5 03:46 将if判断语句那里换成==就是正解。 |
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-4 14:26 最好还是用语法搞定 ![]() |
BCD码放数组里面,然后弄个函数,把数组地址和数据传进去,里面用一个循环搞定,这样应该简化不少吧。 大概类似这种代码编译器好像也可以帮你简化。就是实际上出来的HEX并不大。 |