警告 C6522:大小规格无效: 表达式必须为整型
![]() |
---|
此警告仅发生在使用源代码注释语言(SAL) 的已弃用的版本代码中。建议使用 SAL 最新版本移植代码。有关详细信息,请参阅使用 SAL 批注以减少 C/C++ 代码缺陷。 |
此警告意味着应当使用整数类型,但却使用了错误的数据类型。可以使用接受某个参数的大小作为另一个参数的批注属性,但是必须使用正确的数据类型。有关批注属性的列表,请参见 批注属性。
示例
下面的代码生成此警告:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(ValidBytes="c")] char *pc, double c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(ValidBytes="c")] char *pc, double c);
若要更正此警告,请对 ValidBytesParam 参数数据类型使用 size_t,如下面的代码示例所示:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(ValidBytes="c")] char *pc, size_t c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(ValidBytes="c")] char *pc, size_t c);