我读了一个用c编写的中间件的代码,他们在代码中写了以下内容:
usleep(6*1000*1000);所以我的问题是:
这样写是有原因的吗?为什么不直接写6000000呢?做这个乘法对程序的性能有什么影响吗?
发布于 2017-03-17 23:13:36
usleep()期望提供的参数以“微秒”为单位。
这是一个从微秒到秒的可视化转换,不会影响预期的代码,因为任何不太像样的编译器都会在编译时计算出来。
发布于 2017-03-17 23:11:43
它只是让源代码更容易阅读。加上乘法,这个数字显然是600万。
当它求值为常量时,编译器将在编译时计算常量,编译后的代码将不会有任何差异。
发布于 2017-03-17 23:11:43
最有可能的是,这样做是为了可读性。
查看代码中的6000000,您可能不会立即看到有多少个零。此值与60000000或600000之间的视觉差异不是很大。通过将其拆分,可以更容易地看到。
任何优秀的编译器都应该在编译时计算6*1000*1000,因此应该不会对性能造成影响。
https://stackoverflow.com/questions/42861013
复制相似问题