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, pero la verdadera causa del error ocurre en la línea encima.

// C2059a.cpp

int main ) // C2059 no tiene corchete izquierdo.

{

}

Si la inspección de estas líneas no arroja ninguna pista sobre el posible problema, intente comentar las líneas enumeradas en el mensaje de error y Es posible que aparezcan algunas líneas encima.

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

Si el símbolo no se evalúa como nada (lo que puede suceder al compilar con /Dsymbol=), es posible que obtenga C2059.

// C2059b.cpp

//Compilar con:/DTEST=

#includes

int main()

{

#ifdef prueba

printf("\ntest definido %d", prueba // C2059

#else< /p); >

printf("\nPrueba indefinida");

#endif

}

Es posible que reciba otro C2059 específico. El motivo es compilar una aplicación. cuya estructura se especifica en los argumentos predeterminados de la función. El valor predeterminado del parámetro debe ser una expresión. Las listas de inicialización, como las que se utilizan para inicializar estructuras, no son expresiones. El siguiente ejemplo generará C2059:

// C2059c.cpp

Estructura ag_type

{

int a;

float b;

};

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

La solución es definir un constructor de ejecución para la inicialización requerida.

Estructura ag_type {

int a;

Float b;

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

};

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

int main()

{

}