我正在阅读用c语言编写的中间件代码,以及他们编写以下内容的代码:
usleep(6*1000*1000);
所以我的问题是:
这样写背后有原因吗?为什么不写6000000?这种乘法对程序的性能有影响吗?
答案 0 :(得分:8)
usleep()
期望提供的参数在"微秒"。
这是一个微秒到秒的可视化转换,对预期的代码没有任何影响,因为任何半正式的编译器都会在编译时计算它。
答案 1 :(得分:7)
它只是让源更容易阅读。随着乘法,这个数字显然是600万。
当它计算为常量时,编译器将在编译时计算常量,并且编译代码没有区别。
答案 2 :(得分:5)
最有可能的是,这是为了便于阅读。
在代码中查看6000000
,您可能无法立即看到有多少个零。此值与60000000
或600000
之间的视觉区别并不大。通过将其拆分,可以更容易地看到它。
任何体面的编译器都应该在编译时计算6*1000*1000
,因此不会对性能产生影响。