C6518

警告 C6518:无效的批注:“SAL_writableTo”属性指定,不能在不可写的缓冲区的一个前置条件:“_Param_ (1)”

此警告意味着在 SAL_writableTo 属性值与可写属性之间存在冲突。这通常意味着可写属性对所批注的参数没有写权限。

示例

下面的代码生成此警告,因为注释 _Out_ 编译为包括 SAL_writableTo 属性,不授予写权限:

#include <sal.h>
void f(_Out_ const char* pc)
{
    //code that can't write to *pc ...
}

若要更正此警告,请使用下面的代码:

#include <sal.h>
void f(_Out_  char* pc)
{
    pc = "Hello World";
    //code ...
}