【发布时间】:2017-08-09 05:12:54
【问题描述】:
我正在阅读用 c 编写的中间件代码,他们在代码中编写了以下代码:
usleep(6*1000*1000);
所以我的问题是:
这样写有什么原因吗?为什么不直接写 6000000?做这个乘法对程序的性能有什么影响吗?
【问题讨论】:
-
或者为什么不直接写
sleep(6);,它也传达了“6 秒”而没有任何可读性问题。 -
您能立即分辨出
6000000和60000000和600000之间的区别吗?阅读大量代码时,有时很难确切地看到存在多少个零。 -
比这样的废话更好更安全的技巧:
(int)(6.0*10e6) -
@Lundin:您的
(int)(6.1*10e6)建议存在致命缺陷,因为您在需要 6 的情况下使用 6.1,并且睡眠时间是所需时间的 10 倍。这两个都表明它绝不是更好和更安全的。 —— Lundin 设法在时间限制结束之前纠正了他的 cmets(但不是一个数量级的关闭:6.0*1E6或6.0*1.0E6就可以了)。; -
6*1000*1000与6000000的问题在于类型。考虑6*1000*1000*1000(intmath) vs.6000000000vs.6LL*1000*1000*1000(long longmath)
标签: c syntax formatting int