Compartir a través de


C6504

Actualización: noviembre 2007

C6504

Advertencia C6504: Anotación no válida: la propiedad 'Null' únicamente se puede utilizar en valores de puntero, puntero a miembro o matriz

Esta advertencia indica el uso de una propiedad en un tipo de datos incompatible. Para obtener más información sobre los tipos de datos admitidos por las propiedades, vea Propiedades de anotación.

Ejemplo

El código siguiente genera esta advertencia porque la propiedad Null no se puede utilizar en el tipo de datos char. El motivo es que Deref=1 hace referencia a caracteres, y no al puntero a los caracteres:

// C
#include <CodeAnalysis\SourceAnnotations.h>
void f([SA_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);

Para corregir esta advertencia, quite Deref=1, como se muestra en el siguiente ejemplo de código:

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

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

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

El código defectuoso mostrado anteriormente también genera la advertencia C6516 porque los conflictos de propiedad han provocado una anotación no válida.