Freigeben über


C6504

C6504

Warnung C6504: Ungültige Anmerkung: Die NULL-Eigenschaft darf nur für Werte vom Typ "pointer", "pointer-to-member array" oder für Verweistypen verwendet werden.

Diese Warnung weist auf die Verwendung einer Eigenschaft für einen nicht kompatiblen Datentyp hin. Weitere Informationen zu von Eigenschaften unterstützten Datentypen finden Sie unter Anmerkungseigenschaften.

Beispiel

Im folgenden Code wird diese Warnung generiert, da die NULL-Eigenschaft nicht für den char-Datentyp verwendet werden kann. Der Grund hierfür ist darauf zurückzuführen, dass Deref=1 auf Zeichen und nicht auf den Zeiger auf die Zeichen verweist:

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

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre(Deref=1, Null=Yes)] char* pc);

Um diese Warnung zu korrigieren, entfernen Sie Deref=1, wie im folgenden Beispielcode dargestellt:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([Pre(Null=SA_Yes)] char* pc);

// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;

void f([Pre(Null=Yes)] char *pc); 

Der zuvor angezeigte fehlerhafte Code generiert auch die Warnung C6516, da Eigenschaftenkonflikte zu einer ungültigen Anmerkung geführt haben.