为了账号安全,请及时绑定邮箱和手机立即绑定

如图,最好能帮忙详细的解释一下,这代表了一个_SAL2_Source函数吗?

如图,最好能帮忙详细的解释一下,这代表了一个_SAL2_Source函数吗?

C
拉风的咖菲猫 2022-09-15 18:14:58
还是说递归调用的,函数参数里那个括号是干嘛的,Ret1_impl_(_maybenull_impl)又是什么函数?
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

这是为了对函数参数和返回值进行批注。_Ret_maybenull_表示返回值可能为 NULL 。

这里有一些方法,可以获得最大的源代码注释语言(SAL),并避免一些常见的问题。

返回值的批注(_Ret_maybenull_)

下面的示例演示返回值注释的一个常见问题。


// 错误_Out_opt_ void *MightReturnNullPtr1(); // 正确_Ret_maybenull_ void *MightReturnNullPtr2();

在此示例中,_Out_opt_表示指针可能为 NULL 作为前置条件的一部分。 但是,前置条件不能应用于返回值。 在这种情况下,正确的注释为 _Ret_maybenull_。

关于SAL:

使用 SAL 批注以减少 C/C++ 代码缺陷。

SAL 是 Microsoft 源代码注释语言。 使用源代码批注,可以使代码背后的意图更加清晰。 这些注释还可以使用自动化的静态分析工具更准确地分析代码,显著减少误判。

 使用 SAL 注释,可以用更详细地描述函数,以便使用自己的开发人员可以更好地了解如何使用它们。


查看完整回答
反对 回复 2022-09-21
  • 1 回答
  • 0 关注
  • 242 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信