为什么我总是在犯低级错误?

这段文字原本的开头:

最近写了一段代码不目的是为了判断ipv4报文是否为组播,
原始的代码写的是
if ( mac[0] !=0x01 || mac[1] !=0x00 || mac[2] != 0x5e )
continue;
而且这样的判断有两处,这样一处圈复杂度就是3(就是3个分支),两处就是6,而且整个函数的圈复杂度超过了15,这样阅读起来就比较费劲。
这种情况有两种整改办法,

  1. 将逻辑表达式命别名,先转化为数字运算,然后再做逻辑判断。
  2. 使用区块比较。

** 这样写下去,放大了细节,偏离主题 。**

最近写了一段代码,为了阅读方便需要进行一块内存的比较。字符串的比较函数还是记得都很清楚的。我需要使用的是内存比较,于是就在linux 服务器上执行了 man memcmp 命令查出对应的函数原型以及说明:


man_memcmp.jpg

然后我很得意的在替换的地方写上了 memcpy,过了半天,代码整改完成,我开始找人代码检视,准备上库。
这个时候同事问我,你为什么使用内存拷贝(memcpy)而不是内存比较(memcmp)?
我也很想知道,我明明一直想的是内存比较函数,而且对于这个函数想再确认一把,还特地查询了声明以及用法,为什么到最后写上去的时候就写成了内存拷贝函数了?
还记得在高中的时候我也犯过类似的错误,明明答案上勾选的是D,在选择的结果上写的是B,这让我很是疑惑?当时在干什么,心思都跑到哪里去了,可以确定的是:我当时没有分心,要知道,高中时候的考试我是很看中的,做题的时候,大部分时间都是不够用的多一些,分心去想别的,不可能的。

那么我为什么会犯那个低级错误呢?
对于这个错误没有深思熟虑,导致频频重犯。
我有没有在某一个领域改掉过犯低级错误的毛病呢?的确是有的
初中时候的数学考试。
那个时候特别喜欢数学,在做题或者学习中有一种快乐感,然而,考试成绩平平。老师见我平时上课的时候挺活跃的,可能有些不理解吧,于是在一个下午,把我叫到办公室里面,“你来咱们分析一下你的试卷。”我心里战战兢兢的,以前我总是安慰自己,这些题我都可以做到,但是我拒绝分析其中的原因。
考试时候的每一道数学题,我都会做,在想到最关键部分之后,头脑觉得特别兴奋,然后就有点想要放松一点的情绪在其中,活着是觉得自己做对了,而在此时要么是一个小点没有注意到,要么是沉浸在兴奋的思绪中,没有投入到目前的状态,导致最终的错误。
在后续的考试数学前,我还是有种莫名的兴奋,同时不断告诫自己的,找到思路之后,平静面对接下来的步骤,数学考试的结果立即就进入前5了。

犯了低级错误并不可怕,可怕的有两点:

  1. 对于犯下错误产生了消极认识,认为自己不行。(由于平时对数学的喜爱,而且平时做的不错的内在动力,没有让我陷入这个误区。)
  2. 知道那些低级错误不是你的水平,但是你不去面对它,不是想办法避免,他们会如影随形,久而久之,你会对自己的水平产生怀疑的。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,862评论 25 708
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,753评论 0 4
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 2,026评论 0 12
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,002评论 0 7
  • 那时我管他叫老师,从来不带姓。那时我们管班主任叫老板,从来不叫老班。那时,我开朗、调皮、活泼,却也温柔、细腻、感性...
    宁信阅读 498评论 0 2