Udostępnij za pośrednictwem


C6516

Ostrzeżenie C6516: nieprawidłowa adnotacja: brak określonych właściwości dla atrybutu <name>

[!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 albo żadna właściwość nie została określona w atrybucie albo właściwość, która została określona jest nieprawidłowa; dlatego też atrybut nie może zostać uznany za kompletny.

Przykład

Poniższy kod generuje to ostrzeżenie, ponieważ Deref=1 określa tylko poziom pośredniczenia, ale same te informacje nie są przydatne dla narzędzia analizy:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1)] char* pc);

W celu poprawienia tego ostrzeżenia wymagana jest inna właściwość, taka jak dostęp, do wskazania dla narzędzia analizy, co musi zostać wymuszone na elementach o usuniętych odwołaniach.Następujący kod naprawia to ostrzeżenie:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_Pre(Deref=1, Access=SA_Read)] char* pc); 

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f([Pre(Deref=1, Access=Read)] char* pc);