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[]);