C6504

更新:2007 年 11 月

警告 C6504:无效的批注: 属性只能用于指针值、指向成员的指针值或数组类型值

此警告意味着对不兼容的数据类型使用了属性。有关属性所支持的数据类型的更多信息,请参见 批注属性

示例

在下面的代码中,因为不能对 char 数据类型使用 Null 属性,所以会生成此警告。其原因在于,Deref=1 是指字符,而不是指字符的指针:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1, Null=SA_Yes)] char* pc);

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

void f([Pre(Deref=1, Null=Yes)] char* pc);

若要更此警告,请移除 Deref=1,如下面的代码示例所示:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Null=SA_Yes)] char* pc);

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

void f([Pre(Null=Yes)] char *pc); 

在前面显示的缺陷代码中,因为属性冲突导致了无效的批注,所以也会生成警告 C6516