Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo resolver errores de sintaxis

Cómo resolver errores de sintaxis

Error del compilador C2059 Error de sintaxis: "etiqueta"

Esta etiqueta provocó un error de sintaxis.

Para determinar la causa, examine no solo la línea que aparece en el mensaje de error, sino también las líneas que se encuentran encima de ella. El siguiente ejemplo genera un mensaje de error para la línea que contiene la llave de apertura, mientras que la causa real del error aparece encima de la línea.

// C2059a.cpp

int main )// C2059 no tiene corchete de apertura.

{

}

Si al examinar la línea no se revela ninguna pista de que algo haya salido mal, intente comentar la línea que aparece en el mensaje de error como así como la línea posibles líneas arriba.

Si el mensaje de error aparece en un símbolo inmediatamente después de una variable typedef, verifique si la variable está definida en el código fuente.

Puede obtener C2059 si el símbolo no se evalúa como nada (lo que puede ser el caso al compilar con /Dsymbol=).

// C2059b.cpp

// Utilice /DTEST= para compilar:

#include

int main ()

int main ()

p>

{

#ifdef PRUEBA

printf("\nPRUEBA definida %d", PRUEBA ); // C2059

#else

p>

printf("\nPRUEBA no definida"); p>}

Otra razón específica por la que puede recibir un C2059 es Compila una aplicación que especifica una estructura en el argumento predeterminado de la función. El valor predeterminado del parámetro debe ser una expresión. Las listas de inicializadores (como las que se utilizan para inicializar una estructura) no son expresiones. El siguiente ejemplo genera C2059:

// C2059c.cpp

struct ag_type

{

int a; p>float b;

};

void func(ag_type arg = {5, 7.0}) ; // C2059

La solución es definir un función constructora para realizar la inicialización requerida.

struct ag_type {

int a

flotante b;

ag_type(int aa, float bb): a(aa) , b(bb) {}

};

void func(ag_type arg = ag_ type(5, 7.0));

int main()

{

}

También es posible obtener C2059 si define una clase de plantilla miembro o una función fuera de la clase. Para obtener más información, consulte el artículo Q241949 de la base de conocimientos.

Reimpreso de:. . . .