我一直在阅读SAL,我不清楚指针类型的注释是否适用于引用或它指向的值。例如,如果我有:
void f(_In_ type* t);
_In_
表示“参数必须在预先状态下有效且不会被修改。”这里的应用是否意味着t的地址不会改变,或者t的值是多少?
答案 0 :(得分:4)
在您的示例中,_In_
表示
t
是否在函数中取消引用之前检查为null;假定t
在函数本身中为非null。通过将_In_
更改为_In_opt_
,VS代码分析将验证t
在取消引用之前检查为空。type
指向的内存中读取t
的“一个元素”,就像将解除引用的指针的值赋给变量一样。