2012-12-14 125 views
4
typedef char __darwin_uuid_string_t[37]; 

这一段代码由MacOS10.8例外/用户/包括/ SYS/_types.h 我想知道为什么 这里是数字37,而不是2的幂?尺寸的阵列37

+6

为什么你认为它应该是2的动力的动力? – JasonD

回答

7

UUIDs36字符长度,并因此形成37个字符的字符串,包括在端部的空字符。

UUID是16个八位字节(128位)号码。在它的规范形式中,UUID用32个十六进制数字表示,用由连字符分隔的五组 显示,总共36个 字符(32位数字和四个连字符)以8-4-4-4-12的形式显示, 。

+0

应该是字符,而不是位。 –

+0

非常感谢!答案很干净,非常有帮助! @Cthulhu – wuhaochi

2

UUID包含36个字符加终止0字节。

例如(来自Wikipedia page):550e8400-e29b-41d4-a716-446655440000

0

36个字符的UUID(32位加上4 ' - ' 分隔符),加0终止子。

我假设。

并非一切都需要是2