
SAL,全名Microsoft source code annotation language,是微软从Visual Studio 2005开始引入的一种源代码注释语言 。SAL提供了一组注释(通过宏定义实现),用于描述函数如何使用其参数、对这些参数做出的假设以及函数完成时所能保证的结果,这些注释定义在头文件中 。Visual Studio代码分析工具使用SAL注释来修改其对函数的分析 。SAL定义了四种基本类型的参数:_In_(输入到调用的函数)、_Inout_(输入到调用的函数并输出到调用方)、_Out_(输出到调用方)、_Outptr_(将指针输出给调用方) 。由于这些宏最终被预处理器处理,所以不会对源代码有任何影响。
SAL自Visual Studio 2005引入后持续发展,出现了用于Windows驱动程序开发的SAL 2.0注释 。在混合使用Facebook Infer与SAL的大型C/C 项目中,静态分析工具间的注解冲突成为主要障碍,为实现协同工作需要定义兼容层宏将SAL注解转换为Infer可识别的断言模式 。
想要了解更多“SAL(微软源代码注释语言)”的信息,请点击:SAL(微软源代码注释语言)百科
