Ver Mensaje Individual
  #9 (permalink)  
Antiguo 09/06/2010, 00:19
AlanChavez
 
Fecha de Ingreso: junio-2010
Ubicación: Charlotte, NC
Mensajes: 611
Antigüedad: 12 años, 6 meses
Puntos: 95
Respuesta: void , que es?????

Cuando una función le precede la palabra reservada "void" quiere decir que no regresa ningun valor a la memoria.

En otras palabras,
Cuando creamos una función, el procesador asigna un espacio en la memoria para dicha función.
Al leer el procesador que se trata una función de tipo entero, el procesador, espera un valor entero al final de dicha función.
Por ejemplo:

Código C++:
Ver original
  1. int suma(int a, int b)
  2. {
  3. return a+b;
  4. }

Si llamamos a la función de la siguiente manera:
suma(3,2);
El procesador recibirá 5,
porque estaoms estableciendo return 3+2;
return 5;

Siempre debemos devolver el mismo tipo de dato que estamos utilizando para declarar la función.

También lo podemos ver como un servicio de "renta"

El procesador, le "renta" a nuestro programa un espacio en la memoria para que ponga su función. Cuando nuestro programa termina de utilizar la función, el programa le debe regresar ese espacio al procesador para que se lo pueda asignar a otros programas que lo puedan requerir; Entonces nuestro programa le "paga" al procesador por el espacio rentado, con algo del mismo valor.

Un compilador estandar de C++, asigna a los números enteros (short int o simplemente int) un espacio de 16 bits, proporcionandonos un rango de números enteros (short int) de -32768 a 32767 (2 elevado a la potencia 15)
Al momento de declarar una función de tipo int (como en nuestro ejemplo int suma(int a, int b) ), el procesador, al finalizar nuestra función espera que le regresemos un valor dentro del rango previmanete establecido. Dicho rango varía de acuerdo al tipo de dato que estamos utilizando para nuestra función.


Ahora, si utilizamos la palabra reservada void, antes de la funcion
como:

Código C++:
Ver original
  1. void suma(int a, int b)
  2. {
  3. int sumita = a+b;
  4. std::cout<<sumita<<endl;
  5. }

Notaras la ausencia de la palabra reservada return.
No hay necesidad de regresar ningun valor al compilador. Cuando utilizamos la palabra reservada void para declarar una función, el procesador le sigue presetando ese espacio de memoria a nuestro programa para que almacene su función, pero ya no se la cobra.


Espero que mi explicación haya sido clara :)

Última edición por AlanChavez; 09/06/2010 a las 01:44