Zcu*_*ube 6 visual-c++ microsoft-sal
在函数参数中的变量之前使用这些关键字的含义是什么?
__in
__out
__in_opt
Nec*_*lis 10
这些是来自微软SAL Annotations的一些较旧的装饰宏(现在较新的装饰宏是按照不同的外壳,从首都开始).这些对编译没有实际影响(在VS 2010下它们甚至没有扩展),它们用于内联API文档.
_in
_opt
NULL
你可以在这里得到了充分的解释旧的装饰品在这里.
Aja*_*jay 7
正如 Nercolis 所回答的,这些是 SAL 注释属性。但是,这些不仅仅是内部的或仅用于API 文档的。真正的目的是为了代码分析。当您使用/analyze编译器选项(项目属性,代码分析 -> 常规)构建项目时,这些在查找编码问题方面起着重要作用。
例如,如果一个特定的指针参数说,__in那么它不能被传递一个空指针。该函数不会检查 null 并可能导致 SEH。__in_opt参数可能为空。当编译器发现一些问题时,它会将其报告为警告。请参阅这篇文章。
归档时间:
13 年,11 月 前
查看次数:
6465 次
最近记录:
8 年,7 月 前