elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  error used prior to declaration
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: error used prior to declaration  (Leído 2,055 veces)
MasterPunk


Desconectado Desconectado

Mensajes: 447


(-A-)


Ver Perfil WWW
error used prior to declaration
« en: 4 Enero 2012, 01:56 am »

Hola, podeis decirme porqué este código está mal?

Código
  1. int main() {
  2.  ....
  3.  
  4.  int valor_1 = 1500;
  5.  int valor_max_1 = 1000;
  6.  
  7.  valor = v_max(valor_1, valor_max_1);
  8. }
  9.  
  10. ...
  11.  
  12. int v_max(valor, valor_max){
  13.  if(valor > valor_max)
  14.     return valor_max;
  15.  if(valor < 0)
  16.     return 0;
  17.  return valor;
  18. }
  19.  

A mi me parece que está bien.. aunque tampoco es que sepa mucho =S
Gracias


« Última modificación: 4 Enero 2012, 01:59 am por MasterPunk » En línea

KaL3o

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: error used prior to declaration
« Respuesta #1 en: 4 Enero 2012, 02:30 am »

Los compiladores toman tu codigo desde arriba hacia abajo.

Por lo cual cuando llega a la funcion, te sale el error del titulo del tema. Porque el compilador no conoce que funcion es, para implementar la funcion despues del main debes declararla antes del main.

Código
  1. int v_max(int, int); //aqui le dices al compilador que esta funcion existe pero que luego la implementaras
  2.  
  3. int main()
  4. {
  5.    int valor_1 = 1500;
  6.    int valor_max_1 = 1000;
  7.    int valor;
  8.    valor = v_max(valor_1, valor_max_1); //supongo que la variable valor si la has declarado, en caso que no, entonces debes declararla
  9. }
  10.  
  11. int v_max(int valor, int valor_max)//las funciones tanto como los nombres de variables deben tener un nombre acorde a lo que hacen. Los parametros [b]no[/b] necesariamente deben tener el mismo nombre de las variables que usamos en nuestro programa principal.
  12. {
  13.    if(valor > valor_max)
  14.        return valor_max;
  15.    if(valor < 0)
  16.        return 0;
  17.    return valor;
  18. }
  19.  
En comentarios te coloque algunas aclaraciones :D

Otra alternativa es que puedes implementar la función antes del main
Código
  1. int v_max(int x, int y)//cambie el nombre a los parametros para mostrar lo q habia comentado anterior mente
  2. {
  3.    if(x > y)
  4.        return y;
  5.    if(x < 0)
  6.        return 0;
  7.    return x;
  8. }
  9.  
  10. int main()
  11. {
  12.    int valor_1 = 1500;
  13.    int valor_max_1 = 1000;
  14.    int valor;
  15.  
  16.    valor = v_max(valor_1, valor_max_1);
  17. }
  18.  

Espero te sea de ayuda

Salu2 :)


En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
alexis33de

Desconectado Desconectado

Mensajes: 56


Ver Perfil
Re: error used prior to declaration
« Respuesta #2 en: 4 Enero 2012, 03:01 am »

Simplemente declara tu funcion primero y luego viene el main
Código
  1. int v_max(valor, valor_max){
  2. if(valor > valor_max)
  3.    return valor_max;
  4. if(valor < 0)
  5.    return 0;
  6. return valor;
  7. }
  8. int main() {
  9.  
  10. int valor_1 = 1500;
  11. int valor_max_1 = 1000;
  12. int valor;
  13. valor = v_max(valor_1, valor_max_1);
  14. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines