【发布时间】:2014-06-29 00:37:56
【问题描述】:
我有一个函数:
VOID GetOSVersion(PDWORD major, PDWORD minor, PDWORD build)
{
OSVERSIONINFO osver;
ZeroMemory(&osver, sizeof(OSVERSIONINFO));
osver.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osver);
if(major)
*major = osver.dwMajorVersion;
if(minor)
*minor = osver.dwMinorVersion;
if(build)
*build = osver.dwBuildNumber;
}
我想像这样调用它:
PDWORD major;
PDWORD minor;
PDWORD build;
GetOSVersion(major, minor, build);
我收到一个错误:未初始化的局部变量:对于所有三个参数。在我的脑海中它是这样的:我声明了主要、次要、构建,然后它们被填充到函数中。在调用代码的前三行中已经为它们分配了空间。
我肯定在这里遗漏了一些东西。有人可以帮我解释一下吗?
【问题讨论】:
-
您将所有三个变量major、minor 和build 作为对函数的非引用传递,而无需初始化它们。由于该函数处理这些变量的值,因此这没有多大意义。
标签: c++