iOS开发iOS 细节大集合iOS资料库

iOS NSEC_PER_SEC、NSEC_PER_MSEC宏定

2018-07-23  本文已影响890人  达若漠沙

在使用dispatch_after函数时:

dispatch_after(dispatch_time_t when,
    dispatch_queue_t queue,
    dispatch_block_t block);

常常会这样创建时间参数:

    dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, 3ull * NSEC_PER_SEC);

其中:ull 是C语言的数值字面量,是显式表明类型时使用的字符串(表示 ”unsigned long long “)
点进宏定义 USEC_PER_SEC :看到很多宏定义,在网上找了一下,感觉解释的怪怪的。索性自己解释一番

#define NSEC_PER_SEC 1000000000ull     多少纳秒 = 1秒            1秒 = 10亿纳秒              
#define NSEC_PER_MSEC 1000000ull       多少纳秒 = 1毫秒          1毫秒 = 100万纳秒
#define USEC_PER_SEC 1000000ull        多少微秒 = 1秒            1秒 = 100万微秒   
#define NSEC_PER_USEC 1000ull          多少纳秒 = 1微秒           1微秒 = 1000 纳秒

第三行需要注意一下:
按照道理来讲,第三行的单位应该是微秒,如果继续换算成纳秒,还需要再乘以103才对。但是既然没有乘,大家在使用的时候就要注意,此宏虽表征微秒与秒的单位换算,但实际代表的时间是以纳秒来计算的。因此,但从计算来讲,只表示1毫秒哦。

最后科普下 秒单位的换算:(手动敲黑板:Duang、Duang、Duang)

1s=103ms(毫秒)
=106μs(微秒)
=109ns(纳秒)
=1012ps(皮秒)
=1015fs(飞秒)
=1018as(阿秒)
=1021zm(仄秒)
=1024ym(幺秒)

如果喜欢此博文,欢迎小伙伴简书点赞哦~
上一篇下一篇

猜你喜欢

热点阅读