C++, sal.h的初见

一路挖UE的Memcpy,不小心挖到了这个头文件 sal.h 。

 

成片的宏张牙舞爪,就像你应声开门以为是肯德基结果是佛伯乐的骇然

 

sal是什么呢?

https://learn.microsoft.com/en-us/cpp/code-quality/understanding-sal?view=msvc-170

全称是 Microsoft source-code annotation language (SAL) 直译过来大概是 “微软代码注释语言”。

又是微软的神奇妙妙工具,翻看文档,有以下几句话。

Visual Studio code analysis for C++ uses SAL annotations to modify its analysis of functions.

SAL is an inexpensive way to let the compiler check your code for you.

vs的c++代码分析会使用代码中的sal注释来修改函数分析。

sal允许编译器低开销地检查代码。

 

sal如何工作?

因为我不准备客制化这个妙妙工具,观察一下它的使用办法就足够了。

注意以下代码的区别

 

_In_的影响之一

 

后者会在“代码检查”后,跳出一个警告 C6387 。
这是因为后者的InCallee函数的签名的参数部分int*之前,有个_In_宏,这个是sal注释的一种。

如果我们去sal的微软文档看一眼,

就会发现_In_的一大堆影响中,有一条是“对应参数必须有效”。

 

 _In_注释指出了哪些条目。其中第一点,该参数必须有效且不可修改 

 

 

感谢阅读,敬请斧正

posted @ 2024-12-21 20:10  在找饭吃的陈  阅读(136)  评论(0)    收藏  举报