博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【编程好习惯】引入中间变量使程序更易读
阅读量:6227 次
发布时间:2019-06-21

本文共 1036 字,大约阅读时间需要 3 分钟。

今天查看自己为《专业嵌入式软件开发》一书所写的代码时发现,个别函数由于没有引入中间变量,使代码行既长又不易读。重构前后的代码如下所示。
重构前:
 
  1. if (TIMER_STARTED == _handle->state_) {
  2.    timer_handle_t next;
  3. if (g_timer_next == _handle) {
  4.        g_timer_next = (timer_handle_t) dll_next (&g_bucket_firing->dll_,  
  5.            &_handle->node_);
  6.    }
  7.    next = (timer_handle_t)dll_next  
  8.        (&
    g_buckets [_handle->bucket_index_].dll_, &_handle->node_);
  9. if (0 != next) {
  10.        next->round_ += _handle->round_;
  11.    }
  12.    dll_remove (&
    g_buckets [_handle->bucket_index_].dll_, &_handle->node_);
  13. if (
    g_buckets [_handle->bucket_index_].reentrance_ > 0) {
  14.        g_bucket_firing->level_ ++;
  15.    }
  16. }
重构后:
 
  1. if (TIMER_STARTED == _handle->state_) {
  2.    timer_handle_t next;
  3. bucket_t *p_bucket = &g_buckets [_handle->bucket_index_];
  4. if (g_timer_next == _handle) {
  5.        g_timer_next = (timer_handle_t) dll_next (&g_bucket_firing->dll_,  
  6.            &_handle->node_);
  7.    }
  8.    next = (timer_handle_t)dll_next (&
    p_bucket->dll_, &_handle->node_);
  9. if (0 != next) {
  10.        next->round_ += _handle->round_;
  11.    }
  12.    dll_remove (&
    p_bucket->dll_, &_handle->node_);
  13. if (
    p_bucket->reentrance_ > 0) {
  14.        g_bucket_firing->level_ ++;
  15.    }
  16. }

转载地址:http://rbjna.baihongyu.com/

你可能感兴趣的文章
Android 自己主动化測试(3)<monkeyrunner> 依据ID查找对象&touch&type (python)...
查看>>
IDEA中Ctrl+Shift+F快捷键无效的解决方式
查看>>
git 笔记
查看>>
C# SignalR 即时通信
查看>>
Android之——自己主动挂断电话的实现
查看>>
springcloud-01-介绍
查看>>
sqlite自己主动更新数据库
查看>>
管理中的外行与内行
查看>>
【5】JVM-垃圾收集器
查看>>
音频变调技术
查看>>
Installation error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
查看>>
解决App can’t be opened because it is from an unidentified developer
查看>>
读《那些年,那些事 一个程序猿的奋斗史》 一点自己的感触
查看>>
Java,泛型类型通配符和C#对照
查看>>
LeetCode(1) Symmetric Tree
查看>>
Curl命令
查看>>
HDU 2181 DFS
查看>>
Linux 用C语言判断文件和文件夹
查看>>
Eclipse中jsp、js文件编辑时,卡死现象解决汇总
查看>>
图的基本知识
查看>>