美文网首页
18. 特殊考虑

18. 特殊考虑

作者: bigwhite | 来源:发表于2013-11-26 20:28 被阅读0次

这节包含一些杂项:‘做'与'不做'。

  • 不要通过宏替换来改变语法。这将导致程序对于所有人都是难以理解的,除了那个肇事者。

  • 不要在需要离散值的地方使用浮点变量。使用一个浮点数作为循环计数器无疑是搬起石头砸自己的脚。总是用<=或>=测试浮点数,对它们永远不要 用精确比较(==或!=)。

  • 编译器也有bug。常见且高发的问题包括结构体赋值和位字段。你无法泛泛的预测一个编译器都有哪些bug。但你可以在程序中避免使用那些已知的在所有编译 器上都存在问题的结构。你无法让你写的任何代码都是有用的,你可能仍然会遇到bug,并且在这期间编译器很可能会被修复。因此,只有当你被强制使 用某个特定的充斥bug的编译器时,你才应该"围绕"着编译器bug写代码。

  • 不要依赖自动代码美化工具。良好代码风格的主要受益者就是代码的编写者,并且尤其在手写算法或伪代码的早期设计阶段。自动代码美化工具只应该用在那些已经 完成、语法正确并且此后不能满足当空白和缩进被更为关注的要求时。伴随着对细致程序员的细节的关注,对于那些将函数或文件布局解释清楚的工作,程 序员们会做得更好(换句话说,一些视觉布局是由意图而不是语法决定的,美化工具无法了解到程序员的思想)。粗心的程序员应该学习成为一个细致的程 序员,而不是依赖美化工具让代码可读性更好。

  • 意外地遗漏逻辑比较表达式中的第二个=是一个常犯的问题。使用显式测试。避免对赋值使用隐式测试。

    abool = bbool;
    if (abool) { ...
    

当嵌入的赋值表达式使用时,确保测试是显式的,这样后续它就无法被"修复"了。

while ((abool = bbool) != FALSE) { ... 
while (abool = bbool) { ...    /* VALUSED */
while (abool = bbool, abool) { ...
  • 显式地注释那些在正常控制流之外被修改的变量,或其他可能在维护过程中中断的代码。

  • 现代编译器会自动将变量放到寄存器中。对于你认为最关键的变量慎用寄存器。在极端情况下,用寄存器标记2-4个最为关键的值,并且将剩余的标记为 REGISTER。后者在那些具有较多寄存器的机器上可以#define为寄存器。

相关文章

  • 18. 特殊考虑

    这节包含一些杂项:‘做'与'不做'。 不要通过宏替换来改变语法。这将导致程序对于所有人都是难以理解的,除了那个肇事...

  • 特殊场景的考虑

    二、异常操作 1. 恶意使用:防止恶意频繁发送短信验证码 四、网络状态 1.网络信号不佳,如:1. 跳转页面加载-...

  • 时光掩埋的秘密(七)我爱你,不代表我要和你在一起

    (接上文) **18. **小雯在考虑我的结婚提议,我也努力不去想朵儿。但我承认,要完全做到这点真的很难。手机上来...

  • 关于排课表

    开学了,教育处最忙的一件事就是排课表。既要考虑到每个学科的特殊性,也要考虑到老师任课的实际情况,还要特殊考虑几种特...

  • 力扣337——打家劫舍 III

    这一篇也是基于"打家劫舍"的扩展,需要针对特殊情况特殊考虑,当然其本质还是动态规划,优化时需要考虑数据结构。 原题...

  • 祯·精彩20180311

    17.端菜上桌时,要提醒客人注意,避免将汤汁、酒倒在客人身上。 18.上菜要先划单再移位然后上菜,并考虑下一道菜的...

  • Linux 远程传输: scp

    参考: 18. scp 跨机远程拷贝

  • 2022-05-08(234)Engineering law a

    18. “A REASONABLE PERCENTAGE ADDITION…IN RESPECT OF PROFI...

  • 生日快乐

    祝自己生日快乐,永远18.哈哈

  • 18. 脚投-单行本《游戏玩家》

    18. 脚投-单行本《游戏玩家》

网友评论

      本文标题:18. 特殊考虑

      本文链接:https://www.haomeiwen.com/subject/xaiqtttx.html