Microsoft的源注释语言(SAL) - 有什么方法可以利用它吗?
Microsoft's Source Annotation Language (SAL) -- any way to take advantage of it?
有没有办法利用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 进行静态分析。 在编译时查找错误比在运行时查找错误更好。
就
我个人的经验而言,源注释是一种有用的方法,可以快速查看参数应该如何传递或假设它们是如何传递的。就利用这一点而言,我同意预传递可能是真正利用的唯一方法,如果您对它的输出有特定的需求或期望,我建议您编写自己的预传递。希望我有帮助..
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 在 c++ 中拥有一组结构的正确方法是什么?
- 通过JNI传递数据数组的最快方法是什么
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 在另一个类视图中添加最多2个图表的正确方法是什么
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 在 c++ 中对类中的 c 字符串动态数组进行排序的最佳方法是什么?
- 在C++中包含原型文件的正确方法是什么?
- 在 OpenCV C++ 中估计基本矩阵之前对相应点进行归一化的正确方法是什么?
- 在PostgreSQL中根据它们的ID选择大量行的最快方法是什么?
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?