首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows API保留参数

Windows API保留参数
EN

Stack Overflow用户
提问于 2010-12-09 05:19:07
回答 1查看 1.3K关注 0票数 6

我想知道为什么一些函数有一些参数必须设置为NULL,因为这些参数是“保留参数”。例如:

代码语言:javascript
复制
LONG WINAPI RegQueryValueEx(
  __in         HKEY hKey,
  __in_opt     LPCTSTR lpValueName,
  __reserved   LPDWORD lpReserved,
  __out_opt    LPDWORD lpType,
  __out_opt    LPBYTE lpData,
  __inout_opt  LPDWORD lpcbData
);

我不明白为什么lpReserved会存在?我的意思是,如果它是保留的,为什么把它放进去,直接省略它不是更简单吗?

谢谢!:) (请不要理会我的英语。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-09 05:29:29

我认为至少有两个原因。

一种可能是该参数是为将来使用和可能的功能扩展保留的。确保将其设置为NULL可以在某种程度上保证将来添加新功能时不会破坏旧程序。

第二个可能的原因是这个参数实际上可以作为私有API的一部分在内部使用,而API的公共部分规定将这个参数设置为NULL

为什么不完全省略它呢?以后在不改变界面的情况下扩展系统的功能要容易得多。它与旧的API保持二进制和源代码兼容,不需要重新构建旧的软件。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4392454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档