【发布时间】:2017-03-30 16:56:49
【问题描述】:
在 Apple 创建的代码中,有这样一行:
CMTimeMakeWithSeconds( newDurationSeconds, 1000*1000*1000 )
有什么理由将1,000,000,000 表示为1000*1000*1000?
为什么不用1000^3 呢?
【问题讨论】:
-
代码的清晰度和可读性。您不能将 , 或 ' 作为 C 中的分隔符,因此下一个最好的方法是从乘法中计算值。 ^ 是 C 中不相关的运算符 - 异或。
-
它特别用于持续时间:2*60*60 .. 它很容易注意到是 2 小时..
-
我怀疑 1,000,000,000 不是有效的语法
-
顺便说一句,现代编程语言有替代方法来编写相同的,例如在斯威夫特
1_000_000_000。然而,对于时间常数,这更加困难。写30 * 60(30 分钟以秒为单位)比写1800更易读。实际上有一些语言可以让你编写单元,例如meters,让您保护自己免受不良作业的影响。 -
^是 XOR,而不是指数或幂运算符。
标签: objective-c c integer literals