4

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

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

4

3 回答 3

3

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

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

于 2012-05-03T08:11:59.767 回答
1

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

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

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

于 2014-06-24T22:16:00.143 回答
0

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

于 2012-05-10T12:34:53.673 回答