C6521
Warnung C6521: Ungültige Größenangabe: Der Operator "*" kann nur auf Zeigertypen angewendet werden.
Diese Warnung gibt an, dass der Operator "*" fälschlicherweise in einer Anmerkungseigenschaft verwendet wird, in der die Angabe der Größe eines Parameters durch einen anderen Parameter zulässig ist. Diese Warnung wird generiert, wenn der Größenparameter keinen Zeigertyp aufweist und ein Operator "*" zur Dereferenzierung verwendet wird. Sie können den Operator "*" jedoch verwenden, wenn der Größenparameter als Zeigertyp übergeben wird.
Beispiel
Der folgende Code generiert diese Warnung:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElements="*c")] char *pc, size_t c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElements="*c")] char *pc, size_t c);
Um die Warnung zu korrigieren, löschen Sie entweder den Operator "*" aus dem Wert der WritableElements-Eigenschaft oder übergeben einen Zeiger an size_t. Der folgende Code verwendet size_t *c:
// C
#include <CodeAnalysis\SourceAnnotations.h>
void f ([SA_Pre(WritableElements="*c")] char *pc, size_t *c);
// C++
#include <CodeAnalysis\SourceAnnotations.h>
using namespace vc_attributes;
void f ([Pre(WritableElements="*c")] char *pc, size_t *c);