【问题标题】:what is the significance of in the function calls that are given in msdn在 msdn 中给出的函数调用中的意义是什么
【发布时间】:2017-04-05 10:35:06
【问题描述】:

msdn中给出的函数调用_In_有什么意义?

int CALLBACK WinMain(
  _In_ HINSTANCE hInstance,
  _In_ HINSTANCE hPrevInstance,
  _In_ LPSTR     lpCmdLine,
  _In_ int       nCmdShow
);

【问题讨论】:

  • 请格式化帖子并在正文中阐明完整的问题。 In 可能是一个解析为空的宏 - 用于在语义上(阅读以便更好地理解)将参数标记为输入。在处理指针时,区分输入参数和输出参数并不容易。

标签: c++ visual-c++ msdn


【解决方案1】:

正如 Margaret Bloom 上面评论的那样,这可能是一个解析为空的宏,以便程序员更容易看到该变量是输入变量。

这是必要的,因为许多旧的 Windows 函数都引用了“输出”变量的对象。 IE。您传入函数对其进行更改的原始/对象指针。这允许函数返回一个可用于存储错误代码的 int。 作为旁注,这 ^ 现在被认为是非常糟糕的做法,应该避免。函数应通过正常返回返回数据,并且所有参数通常应视为仅输入。

【讨论】:

    【解决方案2】:

    _In__Out_等都是Microsoft SAL (source code annotation language) annotationsAnnotating Function Parameters and Return Values

    微软的编译器可以解析这些注解来检测可能的 缺陷 - 一种有限形式的静态分析。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      相关资源
      最近更新 更多