Error de sintaxis al compilar con gcc
Publicado por espi (2 intervenciones) el 22/12/2014 18:59:54
hola, estoy haciendo un proyecto para una asignatura de programación en c y al compilar (con gcc) la función principal main, el compilador me da un error de sintaxis, exactamente:
cliente.c:19:1: error: expected ‘;’, ‘,’ or ‘)’ before ‘{’ token
make: *** [cliente.o] Error 1
la línea 19 es justo la siguiente al main, es decir donde esta la llave {
estos errores sulen ser fáciles de resolver pero no consigo ver donde está el problema, ya que en la línea indicada no lo veo.
el código es:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
/*includes de la aplicación */
#include "cliente.h"
/* programa principal */
int main (int argc, char *argv[])
{
int error = 0; /* detectará los errores y valdrá 1 en ese caso */
if(argc != 7) /* comprobamos el número de argumentos en la linea de comandos */
{
fprintf(stderr, "ERR1\n"); /* si es incorrecto, imprimimos el error correspondiente y finalizamos el programa */
error = 1;
}
else
{
if((strcmp(argv[1],TCP) != 0)&&(strcmp(argv[1], UDP) != 0)) /*comprobamos que las opciones sean correctas (-t ó -u)*/
{
fprintf(stderr,"ERR2\n"); /* si es incorrecto, imprimimos el error correspondiente y finalizamos el programa */
error=1;
}
else
{
if((strcmp(argv[5],SUMA) != 0)&&(strcmp(argv[5],RESTA) != 0)&&(strcmp(argv[5],MULTIP) != 0))
{
fprintf(stderr,"ERR3\n"); /* si es incorrecto, imprimimos el error correspondiente y finalizamos el programa */
error = 1;
}
else
{
if((atoi(argv[4]) == 0)||(atoi(argv[6]) == 0)) /*comprobamos que los operandos sean numeros enteros */
{
fprintf(stderr, "ERR4\n"); /* si es incorrecto, imprimimos el error correspondiente y finalizamos el programa */
error = 1;
}
else
{
if(strcmp(argv[1],TCP) == 0)
{
error = tcp(argv);
}
else{
error = udp(argv); }
}
}
}
}
return error;
}
GRACIAS :)
cliente.c:19:1: error: expected ‘;’, ‘,’ or ‘)’ before ‘{’ token
make: *** [cliente.o] Error 1
la línea 19 es justo la siguiente al main, es decir donde esta la llave {
estos errores sulen ser fáciles de resolver pero no consigo ver donde está el problema, ya que en la línea indicada no lo veo.
el código es:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
/*includes de la aplicación */
#include "cliente.h"
/* programa principal */
int main (int argc, char *argv[])
{
int error = 0; /* detectará los errores y valdrá 1 en ese caso */
if(argc != 7) /* comprobamos el número de argumentos en la linea de comandos */
{
fprintf(stderr, "ERR1\n"); /* si es incorrecto, imprimimos el error correspondiente y finalizamos el programa */
error = 1;
}
else
{
if((strcmp(argv[1],TCP) != 0)&&(strcmp(argv[1], UDP) != 0)) /*comprobamos que las opciones sean correctas (-t ó -u)*/
{
fprintf(stderr,"ERR2\n"); /* si es incorrecto, imprimimos el error correspondiente y finalizamos el programa */
error=1;
}
else
{
if((strcmp(argv[5],SUMA) != 0)&&(strcmp(argv[5],RESTA) != 0)&&(strcmp(argv[5],MULTIP) != 0))
{
fprintf(stderr,"ERR3\n"); /* si es incorrecto, imprimimos el error correspondiente y finalizamos el programa */
error = 1;
}
else
{
if((atoi(argv[4]) == 0)||(atoi(argv[6]) == 0)) /*comprobamos que los operandos sean numeros enteros */
{
fprintf(stderr, "ERR4\n"); /* si es incorrecto, imprimimos el error correspondiente y finalizamos el programa */
error = 1;
}
else
{
if(strcmp(argv[1],TCP) == 0)
{
error = tcp(argv);
}
else{
error = udp(argv); }
}
}
}
}
return error;
}
GRACIAS :)
Valora esta pregunta


0