这是 UUID 或 GUID 的可接受用法吗?



>我正在创建一个类,该类接受一个对象并为其分配唯一的ID号。它没什么特别的,它获取对象,为其分配一个数字,然后递增下一个将接收 ID 号的对象的 ID 计数器。

我想调用成员 UUID 或 GUID,代表通用唯一标识符或全局唯一标识符,因为这种语言对于成员是什么非常清楚。

但是,我查找了该术语,维基百科说:

通用唯一标识符 (UUID( 是一个 128 位数字,用于 识别计算机系统中的信息。
无人居住地

这让我认为这些术语具有非常具体的含义,并且我使用它来表示每个对象的唯一编号可能不正确。我正在考虑使用 32 位 int 或类似的东西。

这是对 UUID 或 GUID 的错误使用吗?我认为这并不重要,但我是在C++写作。

是的,我认为这将是对这些术语的误用。UUID 中通用或在 GUID 中全局使用这个词意味着标识符不仅在特定系统中是唯一的,而且在为任何目的开发的任何系统中都是唯一的。只需为每个新实体递增的 32 位整数没有该属性。它可能在您的系统中是唯一的,但不是普遍的。我只是称它为Identifier或类似的东西。

你会在这里找到你的答案。 在 C++ 中,你有一个创建 GUID 的方法:

GUID gidReference;
HRESULT hCreateGuid = CoCreateGuid( &gidReference );

它的意思是:

CoCreateGuid 函数调用 RPC 函数 UuidCreate,它 创建 GUID,一个全局唯一的 128 位整数。使用CoCreateGuid 当您需要一个绝对唯一的编号时,您将用作 分布式环境中的持久标识符。到非常高 确定程度,此函数返回唯一值 - 没有其他 在同一或任何其他系统(联网或非联网(上的调用应 返回相同的值。

当我们潜入时,我们看到:

出于安全原因,通常需要保留以太网地址 在公司或组织外部可用的网络上。 UuidCreate 函数生成一个无法追溯到 生成它的计算机的以太网地址。它还 不能与在同一台计算机上创建的其他 UUID 关联。如果 您不需要此级别的安全性,您的应用程序可以使用 UuidCreateSequential 函数,其行为与 UuidCreate 完全相同 函数在所有其他版本的操作系统上执行。

我把它调暗很重要,这样你不仅会知道你滥用了它,而且你会知道为什么,因为在将来的日子里,这些信息可能对你很重要。