gpt4 book ai didi

c++ - SAL 注释和指针参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:33 25 4
gpt4 key购买 nike

我一直在阅读 SAL而且我不清楚指针类型的注释是否适用于引用或它指向的值。例如,如果我有:

void f(_In_ type* t);

_In_ 表示“该参数必须在预状态有效且不会被修改。”它应用在这里是指t的地址不会改变,还是t的值不变?

最佳答案

在您的示例中,_In_ 表示

  • VS Code Analysis 将验证调用者是否将非空指针传递给已初始化的缓冲区。
  • VS Code Analysis 将不会验证t 在函数中取消引用之前检查是否为 null; t 在函数本身中被假定为非空。通过将 _In_ 更改为 _In_opt_,VS 代码分析验证在取消引用之前检查了 t 是否为 null。
  • VS Code Analysis 将验证该函数仅从 t 指向的内存中读取 type 的“一个元素”,例如将取消引用的指针的值分配给一个变量。

关于c++ - SAL 注释和指针参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com