C6516

更新:2007 年 11 月

警告 C6516:无效的批注: 没有为 <name> 属性(Attribute)指定属性(Property)

此警告意味着没有在属性 (Attribute) 中指定任何属性 (Property),或者指定的属性 (Property) 无效;因此无法将该属性 (Attribute) 视为完整。

示例

在下面的代码中,由于 Deref=1 仅指定间接寻址级别,因此会生成此警告,不过分析工具不能单单凭借此信息来获取帮助:

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

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1)] char* pc);

若要更正此警告,需要通过诸如 Access 这样的其他属性来通知分析工具必须对已取消引用的项强制执行的操作。下面的代码更正此警告:

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

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1, Access=Read)] char* pc);