在 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()。 |