typedef char __darwin_uuid_string_t[37];
this piece of code is excluded from MacOS10.8 / user / include / sys / _types.h I'm curious why is the number 37 here, but not the power of 2?
The UUIDs are 36 characters in length and therefore form 37-character strings, including the null character at the end.
UUID is a 16-octet (128-bit) number. In its canonical form, the UUID is represented by 32 hexadecimal digits displayed in five groups separated by a hyphen, in the form 8-4-4-4-12, for a total of 36 characters (32 digits and four hyphens).
UUID contains 36 characters plus trailing 0 bytes.
For example (from Wikipedia page ): 550e8400-e29b-41d4-a716-446655440000
550e8400-e29b-41d4-a716-446655440000
36-character UUID (32 digits plus 4 '-' delimiters), plus a 0-terminator.
I suppose.
Not everything has to be force 2.