C6521

警告 C6521:大小规格无效: * 运算符只能用于指针类型

此警告意味着在接受某个参数的大小作为另一个参数的批注函数中错误地使用了 * 运算符。 如果在大小参数非指针类型的情况下用 * 运算符来取消引用它,将生成此警告。 然而,如果大小参数作为指针类型传递,则您可以使用 * 运算符。

示例

下面的代码生成此警告:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElements="*c")] char *pc, size_t c);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElements="*c")] char *pc, size_t c);

若要更正此警告,请从 WritableElements 属性值中删除 * 运算符,或者传递一个指向 size_t 的指针。 下面的代码使用 size_t *c:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElements="*c")] char *pc, size_t *c);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElements="*c")] char *pc, size_t *c); 

请参见

其他资源

批注属性