警告 C6522

無効なサイズ指定: 式は整数型である必要があります。関数 'function' 'parameter' の注釈 'annotation'

Note

この警告は、非推奨バージョンのソース コード注釈言語 (SAL) を使用しているコードでのみ発生します。 コードを移植して、最新バージョンの SAL を使用することをお勧めします。 詳細については、「SAL 注釈を使って C/C++ のコード障害を減らす方法」を参照してください。

解説

この警告は、整数型が予期されたが、正しくないデータ型が使用されたことを示します。 別のパラメーターを単位としてパラメーターのサイズを受け入れる注釈プロパティを使用できますが、正しいデータ型を使用する必要があります。 注釈プロパティの一覧については、「SAL 注釈を使ってコード障害を減らす方法」を参照してください。

コード分析名: INVALID_SIZE_STRING_TYPE

この警告が発生するコード例を次に示します。

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