为什么将int格式化为6 * 1000 * 1000而不是6000000

时间:2017-03-17 15:10:41

标签: c syntax formatting int

我正在阅读用c语言编写的中间件代码,以及他们编写以下内容的代码:

usleep(6*1000*1000);

所以我的问题是:

这样写背后有原因吗?为什么不写6000000?这种乘法对程序的性能有影响吗?

3 个答案:

答案 0 :(得分:8)

usleep()期望提供的参数在"微秒"。

这是一个微秒到秒的可视化转换,对预期的代码没有任何影响,因为任何半正式的编译器都会在编译时计算它。

答案 1 :(得分:7)

它只是让源更容易阅读。随着乘法,这个数字显然是600万。

当它计算为常量时,编译器将在编译时计算常量,并且编译代码没有区别。

答案 2 :(得分:5)

最有可能的是,这是为了便于阅读。

在代码中查看6000000,您可能无法立即看到有多少个零。此值与60000000600000之间的视觉区别并不大。通过将其拆分,可以更容易地看到它。

任何体面的编译器都应该在编译时计算6*1000*1000,因此不会对性能产生影响。