内部函数

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

通用

以下函数 instrinsic 注释对于 SAL 简要实用工具。

批注

说明

_Curr_

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

_Inexpressible_(expr)

表示使用的注释表达式示例,为缓冲区的大小太复杂而无法表示的情形,则通过扫描输入数据集然后计数所选成员计算时。

_Nullterm_length_(param)

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

_Old_(expr)

当在前置条件时,都计算输入值 _Old_ 返回 expr。如果在发送时计算条件,则返回 expr 值,因为在前置条件中进行计算。

_Param_(n)

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

说明说明

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

return

C/C++ 保留关键字 return 可用在 SAL 表达式表示函数的返回值。值只能用在后置状态;为使用它的语法错误在以前的状态。

特定于字符串

下面说明内部函数启用字符串的处理。全部这4个函数为同一个目的服务:返回类型的元素数目在空终结器之前找到。差异在于这是引用的元素的数据。请注意,如果要指定不构成字符 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++ 代码缺陷