今天在看公司一份很老的代码的时候,发现一个问题代码,如下
[C] 纯文本查看 复制代码 double a = -50;
uint32_t b = (uint32_t)(a*10);
就是这简单的一句话,很容易爆雷。在使用和不使用微库的时候执行结果完全不一样。但是又没有改到这块代码,所以测试也没测,结果导致上线后有BUG。
本来这种强制转换是不应该出现的,但是由于当时没有使用微库,执行的结果刚好在允许范围内,通过了所有测试用例。
后面迭代的时候不小心使用到的微库,结果结果完全不一样,但是由于迭代开发人员更换,没人会注意也不会特意去看这些看上去容易出错的代码,测试也不会可以去测。所以问题就出来了
这种问题,后期很难自主发现。最好的是设计之初考量好
|