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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  dev-c++ ----> ¿void?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: dev-c++ ----> ¿void?  (Leído 18,518 veces)
lalocr

Desconectado Desconectado

Mensajes: 1


Ver Perfil
dev-c++ ----> ¿void?
« en: 16 Abril 2011, 06:05 am »

hola amigos soy nuevo en elhacker.net, estoy aprendiendo a programar. soy principiante. estoy compilando con dev-c++. Mi problema es este:
cuando escribo cualquier programa y en el main le pongo void antes me manda un error y me dice esto: `main' must return `int' .
yo entiendo que el void es para decirle al complador que el main no va a regresar ningun valor; por lo tanto no tengo que retornar ningun  valor al final, osea no tengo que poner return 0; ¿porque pasa esto? si le pongo void main () es porque ya no tengo que poner return 0. Aun asi ya lo probe poniendo void main () y al final un return 0 y ni aun asi, de todas maneras me manda el error. no lo compila. A fuerzas casi casi me obliga a ponerme el int main o el main nada mas , hasta que hago eso ya me lo comnpila el programa.  ¿que pasa? ayudenme!!! porfavor!! :O agradezco infinitamente al que me responda bien! :) o sera que se me esta olvidando poner algo para que tome en cuenta el void?...


En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: dev-c++ ----> ¿void?
« Respuesta #1 en: 16 Abril 2011, 07:58 am »

.
Prueba asi, en los compiladores no tan rucos o viejos ya se debe hacer con int el void ya no se usa en el main...:

Código
  1.  
  2. int main() {
  3.    // Tu codigo Aqui.
  4.    return 0;
  5. }
  6.  
  7.  

Te dejo esta liga ( esta todo en español ):

http://c.conclase.com/

Temibles Lunas!¡.
.


« Última modificación: 16 Abril 2011, 08:05 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Karman


Desconectado Desconectado

Mensajes: 673



Ver Perfil WWW
Re: dev-c++ ----> ¿void?
« Respuesta #2 en: 16 Abril 2011, 08:02 am »

se debe a modificaciones del standart, en un principio C soportaba el "void main" pero actualmente (luego de muchos años) ya no es soportado y la mayoría de los compiladores te tirara ese warning o error directamente, la solución ya te la contestaron.

S2
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: dev-c++ ----> ¿void?
« Respuesta #3 en: 16 Abril 2011, 13:31 pm »

Void significa "Nada". Si luego usas algún return te dará error. Es siempre recomendable usar int.
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Firos
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.410


Enseña lo que sepas... y oculta lo peor...


Ver Perfil
Re: dev-c++ ----> ¿void?
« Respuesta #4 en: 17 Abril 2011, 16:08 pm »

Exactamente.

Si lo usas con void
Código
  1. void main() {
  2. tu programa
  3. }

Como puedes ver, no tienes que poner return 0; porque si lo pones te dirá eso del error, que no debe devolver un entero.

Void quiere decir que no devuelve nada.


Yo, como dicen arriba, te recomiendo usarlo asi:
Código
  1. int main(){
  2. tu programa
  3.  
  4. return 0;
  5. }

INT en este caso esta diciendole que "main" tiene que devolver un entero.

Devolvera 0 (entero) cuando todo salga bien. Si entre medias pones alguna funcion para detectar errores puedes ponerle "return 1" (donde uno puede ser lo que quieras, hasta una variable que contenta un entero) para identificar el error.

Imaginate que usas un programa para meter datos por teclado. Un dni, por ejemplo.

El programa te pide el nombre, apellidos, y año. Si en el nombre le metes un numero el programa lo detecta y devuelve un error haciendo que el programa retroceda o, por ejemplo, detener la ejecucion del programa y que devuelva un 1. El programa padre que es el que ha mandado ejecutar esta funcion o programa ve un 1 y, por ejemplo, con un switch() en el caso de que sea 1 que haga una cosa, por ejemplo que printee "El nombre no puede contener numeros". Luego, para los apellidos haces un codigo igual, solo que en vez de devolver 1 que devuelva 2 y el programa padre detectara el 2 y diras dentro del switch() en el caso de que sea 2 que printee "error al introducir los apellidos", y asi con todo.

Si usas un programa con funciones, o para llamar a otros archivos viene muy bien para ordenar tu codigo y saber en que parte esta fallando el programa.


En muchos codigos veras que cuando vas a usar alguna funcion que es vitable para que el resto del programa funcione lo ponen asi:

Código
  1. #include <stdio.h>
  2.  
  3. int funcion(void);
  4.  
  5. int main(){
  6.  
  7. if(funcion()!=0){
  8. printf("Error al hacer algo en funcion()");
  9. }
  10. // Este else hace referencia a lo que sea distinto de arriba, es decir a lo que
  11. // sea igual a cero, que en este caso es lo correcto :)
  12. else {
  13. printf("TODO ha salido correctamente, podemos seguir");
  14. }
  15. }
  16.  
  17. int funcion(void){
  18. // tu funcion y tus condicionantes, si en un sitio detectas un error por ejemplo al
  19. // introducir un nombre le pones "return 1" y saldra de la funcion sin terminarla.
  20.  
  21. // al final de la funcion pones return 0 para indicar que todo ha salido correctamente
  22. return 0;
  23. }
  24.  

Te comento un poco, este programa usa funciones para que sean llamadas desde el programa principal "main". Eso que ves abajo y arriba es una funcion. Lo de arriba es un prototipo que tiene que ponerse si quieres poder usar la funcion en cualquier parte del programa. Al final del programa declaras la funcion, es decir, es como si lo escribieses en el programa principal main y lo llamas desde ahi.

Si te fijas en el main le hemos puesto un condicionante, "Si funcion() es distinto de 0 es que ha habido un error en la ejecucion de la funcion".

Si te fijas, la funcion del prototipo se declara igual que la funcion de abajo. Y tiene void dentro del parentesis, eso quiere decir que no se le pasa ningun parametro, ninguna variable.

Echale un vistazo a las funciones a a pasarles tipos de datos.

Ya tienes algo más por donde empezar ;)


Un saludo.
« Última modificación: 17 Abril 2011, 16:26 pm por Firos » En línea

El final del camino no está determinado, lo determinamos nosotros mismos paso a paso, día a día, y se puede cambiar.
Firos
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.410


Enseña lo que sepas... y oculta lo peor...


Ver Perfil
Re: dev-c++ ----> ¿void?
« Respuesta #5 en: 17 Abril 2011, 16:43 pm »

Con respecto a los IDEs. Te voy a recomendar definitivamente el Codelite xD

No es por ser pesado. Lo único es que acabo de ver la última actualizacion del Codelite y es del día 13 de este mes.

Creo recordar que codeblocks esta parado desde hace algun tiempo.

Por otra parte, puedes entrar en este enlace y ver las distintas versiones que tienen.

Windows:
- Una sin el compilador MinGW.
- Otra con el MinGW.
- Y otra con el wxWidgets incorporado para programar programas graficos.

Linux: Para linux tienes el programa (ya tienes compiladores en Linux) y otra opcion para instalarle el wxWidgets. También puedes hacerlo compilando el source del programa.

http://www.codelite.org/LiteEditor/Download


Un saludo.
« Última modificación: 17 Abril 2011, 16:45 pm por Firos » En línea

El final del camino no está determinado, lo determinamos nosotros mismos paso a paso, día a día, y se puede cambiar.
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: dev-c++ ----> ¿void?
« Respuesta #6 en: 17 Abril 2011, 17:27 pm »

Creo recordar que codeblocks esta parado desde hace algun tiempo.

Bueno si vas a la página oficial seguramente no encontrarás mucho, pero si buscas por las Nightly Builds Encontrarás un IDE bastante actualizado (a 2 de abril).

Saludos 
En línea

<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: dev-c++ ----> ¿void?
« Respuesta #7 en: 21 Abril 2011, 11:05 am »

Bueno ya que lo mencionas, mi pregunta es para que se usa el return 0, en el main a que funcion le pasa el valor, porque no siempre main retornara 0, puede retornar cualquier otro valor entonces mi duda seria; un ejemplo donde se use el return de main para realisar alguna accion
En línea

<<<--Basura-->>>
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
(void *) en funciones
Programación C/C++
Shon 4 5,007 Último mensaje 25 Enero 2011, 16:06 pm
por Littlehorse
Void, float y pasos por referencia
Programación C/C++
fedegar91 2 4,277 Último mensaje 7 Mayo 2011, 10:04 am
por fedegar91
funciones INT vs VOID « 1 2 »
Programación C/C++
ALONSOQ 14 6,605 Último mensaje 4 Septiembre 2012, 16:49 pm
por ALONSOQ
retornar void o algo de utilidad
Programación General
robertofd1995 9 3,493 Último mensaje 6 Abril 2015, 22:08 pm
por robertofd1995
Convertir de void a int
Programación C/C++
mester 3 4,947 Último mensaje 22 Noviembre 2015, 20:07 pm
por mester
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines