Sdílet prostřednictvím


C6522

upozornění C6522: neplatná specifikace velikosti: výraz musí být integrálního typu

[!POZNÁMKA]

Toto upozornění se zobrazuje pouze v kódu, který používá zastaralou verzi jazyka SAL.Doporučujeme převedení kódu tak, aby používal nejnovější verzi jazyka SAL.Další informace naleznete v tématu Použití poznámek SAL k snížení míry výskytu závad kódu C/C++.

Toto upozornění znamená, že by mělo být integrálního typu ale byl použit nesprávný typ dat.Můžete použít vlastnosti poznámek, které přijímají velikost parametru, pokud jde o jiný parametr, ale je nutné použít správný datový typ.Seznam vlastností poznámek naleznete v tématu Vlastnosti poznámky.

Příklad

Následující kód generuje toto upozornění:

// 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);

Chcete-li opravit toto upozornění, použijte size_t u ValidBytesParam typ dat parametru, jak je znázorněno v následujícím ukázkovém kódu:

// 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);