内部函数

在 SAL 的表达式可以是 c. /C c++ 表达式,它是没有端效果 (例如,c++ 的表达式,只要--和函数调用都具有副作用此上下文。但是,SAL 提供可用于 SAL 表达式的一些类似于函数的对象和一些保留符号。这些称为 内部函数。

通用

下面 instrinsic 功能性批注为 SAL 提供通用实用工具。

批注

描述

_Curr_

当前注释的对象的同义词。当 _At_ 批注正在使用时,_Curr_ 与第一个参数 _At_。否则,为该参数或整个函数/返回该批注词法关联的值。

_Inexpressible_(expr)

表示使用一个批注表达式 (例如,缓冲区的大小太复杂的中无法表示的情况,则浏览设置输入数据的然后计数选定的成员计算时。

_Nullterm_length_(param)

param 是元素数缓冲区中的等于但不包含 null 结束符。它可以应用于非复合,非 null 类型的所有缓冲区。

_Old_(expr)

当在前置条件时进行计算,_Old_ 返回类型值 expr。当在后期状态时进行计算,它返回值 expr,因为它在前置条件来计算。

_Param_(n)

对函数的 nTh 参数,计数从 1 到 n和 n 是常值整型常数。如果参数命名为,此批注与按名称访问该参数是相同的。

说明说明
n 可以引用由省略号定义的位置参数,也能在不使用名称的函数原型。

return

该 C/C++ 保留关键字 return 可用于 SAL 表达式指示函数的返回值。该值只有在发布状态;它是使用它的语法错误前状态。

字符串特定

下面的内部函数批注启用字符串的过程。所有四这些功能与相同的目的:返回类型的元素数。null 结束符之前找到。区别在于这在引用的元素数据。请注意,如果要指定的字符不构成 null 终止的缓冲区的长度,请使用来自前面的部分中的 _Nullterm_length_(param) 批注。

批注

描述

_String_length_(param)

param 是元素数。该字符串等但不包含 null 结束符。此批注为字符串类型字符是保留的。

strlen(param)

param 是元素数。该字符串等但不包含 null 结束符。此批注是保留为字符数组中使用和类似于 C 运行时函数 strlen ()()。

wcslen(param)

param 是元素数。该字符串的到 (,但不包括) null 结束符。此批注是保留为宽字符数组中使用和类似于 C 运行时函数 wcslen()

请参见

参考

对函数参数和返回值进行批注

对函数行为进行批注

批注结构和类

对锁定行为进行批注

指定何时以及在何处应用批注

最佳做法和示例 (SAL)

概念

了解 SAL

其他资源

使用 SAL 批注以减少 C/C++ 代码缺陷