Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如何有效地初始化数组HKEY?
HKEY
考虑以下代码片段
HKEY hkey[2]; for(int i = 0 ; i < 2 ; i++) LONG reval = RegOpenKeyEx(/* parameters */,&hkey[i]);
RegOpenKeyEx()将根据我传递的参数填充数组。但是初始化 HKEY 数组的最佳方法是什么?我找不到任何有关相同的 msdn 文档。
RegOpenKeyEx()
做的够好吗HKEY hkey[2] = {0 };???
HKEY hkey[2] = {0 };
您不需要初始化数组。您可以让RegOpenKeyEx设置值。在调用 之前,您无需将它们分配给任何东西RegOpenKeyEx。该文档指出该HKEY参数没有语义,因此未使用其输入值。
RegOpenKeyEx
但是,您必须执行错误检查,以确保您检测到函数已失败,因此不要使用未初始化的值。
这样做不会有什么坏处
HKEY hkey[2] = { NULL, NULL };
在你打电话之前RegOpenKeyEx。但是只要您对调用执行适当的错误检查,RegOpenKeyEx该函数就无法成功完成并且不分配给HKEY参数。