Udostępnij za pośrednictwem


C6522

Ostrzeżenie C6522: nieprawidłowa specyfikacja rozmiaru: wyrażenie musi być typu całkowitego

[!UWAGA]

Ostrzeżenie to pojawia się tylko w kodzie, który używa przestarzałych wersji języka adnotacji kodu źródłowego (SAL).Zaleca się przenieść kod tak, aby używał najnowszej wersji SAL.Aby uzyskać więcej informacji, zobacz Za pomocą adnotacji SAL do zmniejszenia wady kod C/C++.

To ostrzeżenie wskazuje, że oczekiwany był typem całkowitym, ale był używany z nieprawidłowym typem danych.Można użyć właściwości adnotacji, które akceptują rozmiar parametru pod względem inny parametr, ale należy kliknąć poprawny typ danych.Aby uzyskać listę właściwości adnotacji, zobacz Właściwości adnotacji.

Przykład

Poniższy kod generuje to ostrzeżenie:

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

Aby rozwiązać to ostrzeżenie, użyć size_t dla ValidBytesParam typ danych parametru, jak pokazano na następujący przykładowy kod:

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