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

Loa*_*awy 4 c syntax int formatting

我正在阅读用c编写的中间件代码,并在代码中编写以下代码:

usleep(6*1000*1000);
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

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

Sou*_*osh 8

usleep() 期望提供的参数为"微秒".

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


Gra*_*and 7

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

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


dbu*_*ush 5

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

查看6000000代码,您可能不会立即看到有多少个零.这个值与60000000或之间的视觉区别600000并不大.通过将其拆分,可以更容易地看到它.

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