2012-12-14 123 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