C6506

警告 C6506:无效的批注: <name> 属性只能用于指针值或数组类型值

此警告意味着对指针或数组类型之外的类型使用了属性。 Access、Tainted 和 Valid 属性可以用于所有的数据类型。 其他属性(如 ValidBytesConst、ValidElementsConst、ElementSize 和 NullTerminted)支持指针、指向成员的指针或数组类型。 有关属性和受支持的数据类型的完整列表,请参见 批注属性

示例

下面的代码生成此警告:

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

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre(ValidElementsConst=4)] int x);

若要更正此警告,请使用指针或数组类型,如下面的代码示例所示:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(ValidElementsConst=4)] int *px);
 - or -
void f([SA_Pre(ValidElementsConst=4)] int px[]);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(ValidElementsConst=4)] int *px);
 - or -
void f([Pre(ValidElementsConst=4)] int px[]);

请参见

参考

C6516