2011-05-10 19 views
9

estoy recibiendo este error de compilación con el siguiente código:falta ';' antes de 'usar'

error C2143: error de sintaxis: falta ';' antes de 'utilizar'

#include <iostream> 
#include <iomanip> 
#include <fstream> 
#include <string> 
#include "s.h" 

using namespace std; 

¿Cómo es esto posible? ¿Cómo se puede arreglar?

+5

Por favor muéstranos 's.h'. –

+0

Tal vez un problema con 's.h'? ¿Puedes publicar eso también? – juanchopanza

+0

El mensaje de error lo dice: falta un ';' antes de usar. Obviamente, falta en "s.h". Puede insertar el archivo completo en lugar de la directiva #include para comprender. –

Respuesta

19

"s.h" podría contener una declaración de clase que no se termina con un ;

Cuando se incluye un encabezado, el preprocesador C pone contenidos sustitutos de cabecera en el in-line, por lo que si nos fijamos en s.h es probable que encuentre algo sin terminar por ;

+0

ah, buena llamada. Gracias – rach

1

El error está en su s.h. En C++, #include es solo un mecanismo de inserción de texto, por lo que si el final de un archivo de encabezado contiene un error, puede obtener el error en un archivo que #include es el archivo defectuoso.

1

También podría ser que los peces no es una cabecera de C++, pero una cabecera de C que no está declarada extern C intento de reemplazar su

#include "s.h" 

con

#ifdef __cplusplus 
extern "C" 
{ 
#endif 
#include "s.h" 
#ifdef __cplusplus 
} 
#endif 

también se puede arreglar esto en el archivo de encabezado en sí.

Cuestiones relacionadas