Microsoft的源注释语言(SAL) - 有什么方法可以利用它吗?

Microsoft's Source Annotation Language (SAL) -- any way to take advantage of it?

本文关键字:方法 什么 注释 语言 SAL Microsoft      更新时间:2023-10-16

有没有办法利用Microsoft的SAL,例如通过保留此信息的C解析器?还是由Microsoft制造,仅供Microsoft内部使用?

它对于许多任务非常有用,例如为其他语言创建 C 库绑定。

不确定"利用"是什么意思,但目前VS 2011 Beta在执行代码分析时使用SAL注释,通过/analyze选项。 注释只是来自sal.h的纯宏,Microsoft鼓励使用(至少在VS环境中)。

如果您只想在预处理步骤后保留信息,则可以将宏扩展到自己,或者只是更改现有的开源预处理器之一以排除符号(VS 也有一些来自 SAL 宏的扩展选项),但是使用注释提供的信息将需要类似于自定义 LLVM 预传递或 GCC 插件的内容来执行此操作(如果编译代码, 尽管您可以同时使用它们进行绑定生成)。

SAL 注释可以通过静态分析找到大量错误。

http://msdn.microsoft.com/en-us/library/windows/hardware/hh454825(v=vs.85).aspx

我从来没有从头开始设置它,但是每次构建某些东西时,我的开发环境都会使用 prefast 进行静态分析。 在编译时查找错误比在运行时查找错误更好。

我个人的经验而言,源注释是一种有用的方法,可以快速查看参数应该如何传递或假设它们是如何传递的。就利用这一点而言,我同意预传递可能是真正利用的唯一方法,如果您对它的输出有特定的需求或期望,我建议您编写自己的预传递。希望我有帮助..

相关文章: