0

如何有效地初始化数组HKEY

考虑以下代码片段

HKEY hkey[2];

for(int i = 0 ; i < 2 ; i++)

LONG reval = RegOpenKeyEx(/* parameters */,&hkey[i]);

RegOpenKeyEx()将根据我传递的参数填充数组。但是初始化 HKEY 数组的最佳方法是什么?我找不到任何有关相同的 msdn 文档。

做的够好吗HKEY hkey[2] = {0 };???

4

1 回答 1

2

您不需要初始化数组。您可以让RegOpenKeyEx设置值。在调用 之前,您无需将它们分配给任何东西RegOpenKeyEx。该文档指出该HKEY参数没有语义,因此未使用其输入值。

但是,您必须执行错误检查,以确保您检测到函数已失败,因此不要使用未初始化的值。

这样做不会有什么坏处

HKEY hkey[2] = { NULL, NULL };

在你打电话之前RegOpenKeyEx。但是只要您对调用执行适当的错误检查,RegOpenKeyEx该函数就无法成功完成并且不分配给HKEY参数。

于 2013-06-04T10:52:09.700 回答