如果我使用SAL,我可以删除NULL和边界检查吗?

时间:2014-11-22 02:10:19

标签: c visual-studio annotations static-analysis sal

我可以依赖SAL多少钱?我需要做什么

NSTATUS my_func(_In_ int *p)
{
    if (NULL == p) {
        return STATUS_INVALID_PARAMETER;
    }
    *p = 1;
    return STATUS_SUCCESS;
}

或者我可以做什么

NTSTATUS my_func(_In_ int *p)
{
    *p = 1;
    return STATUS_SUCCESS;
}

1 个答案:

答案 0 :(得分:2)

SAL仅在编译时提供静态检查。这假定所涉及的所有代码都具有适当的注释并且也已经过检查。这对您的应用程序或模块来说是可以的,但要注意与其他库的边界。