C6501

警告 C6501:批注冲突: <name> 属性与以前指定的属性冲突

说明说明

此警告仅发生在使用源代码注释语言(SAL) 的已弃用的版本代码中。建议使用 SAL 最新版本移植代码。有关详细信息,请参阅使用 SAL 批注以减少 C/C++ 代码缺陷

此警告意味着批注中存在冲突的属性。当使用具有类似用途的多个属性对参数或返回值进行批注时,通常会出现此警告。若要更正此警告,必须选择最满足需要的属性。

示例

在下面的代码中,因为 ValidElementsConst 和 ValidBytesConst 都提供读取有效数据的机制,所以会生成此警告:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void fd([SA_Pre(ValidElementsConst =4, ValidBytesConst =4)] char pch[]);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f( [Pre(ValidElementsConst=4, ValidBytesConst=4 )] char pch[] );

若要更正此警告,请使用最适合的属性,如下面的代码所示:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f( [SA_Pre(ValidElementsConst=4)] char pch[] );

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f( [Pre(ValidElementsConst=4)] char pch[] );

请参见

其他资源

ValidElementsConst

ValidBytesConst