Concepto básico de funciones en C++ y algunos de sus tipos.

A medida que nuestro conocimiento en programación aumenta, a medida que nos sentimos mas seguros de poder desarrollar alguna aplicación en C++ que realice una tarea mas "útil" o al menos no tan trivial como nuestros primeros programas("hola mundo"), surge el problema y de hecho la necesidad de mantener la simplicidad y eficiencia de nuestros programas, surge, por tanto, la necesidad de programar usando FUNCIONES.

Pero, ¿Que es una FUNCIÓN en C++?,  veamos:



Una función en C++ se puede definir como un conjunto o agrupación de sentencias que están bien delimitadas y que realizan una labor en particular, la ventaja de utilizarlas radica en el hecho de que podremos programar aplicaciones mas robustas, sin perder la fácil lectura y por ende mantenimiento de las mismas. Para implementarlas en nuestro código se requiere de al menos 2 fases:

fase de Definición:

     En esta fase se construye el cuerpo lógico de la función, se determina de que TIPO es, que es lo que va a REALIZAR , si tiene ARGUMENTOS, o si devuelve un VALOR DE RETORNO. Como ya lo habrán notado, las funciones se construyen de la misma manera que la función principal "main()". 

Ejemplo.

  TIPO  NOMBRE_FUNCIÓN ( ARGUMENTOS )
             {
                         //Conjunto de instrucciones;
                        //////////
                        VALOR DE RETORNO; // frecuentemente se utiliza return 0; 
           }

Lo que vemos arriba, es el esqueleto de la DEFINICIÓN de una FUNCIÓN, comencemos con el TIPO, existen varios y son los siguientes: VOID (tipo vacío, no RETORNA ningún valor), INT (cuyo valor de retorno es de tipo entero), DOUBLE( cuyo valor de retorno es de tipo coma flotante, es decir, decimal de doble precisión), BOOL (retorna un valor de tipo BOOL, es decir, falso o verdadero) . Después viene el NOMBRE de la función que puede ser cualquiera, siempre y cuando sea valido y no se usen palabras reservadas de C++. Luego, entre paréntesis puede LLEVAR o NO argumentos, si no se especifican el compilador toma los argumentos por defecto, que son de tipo entero, básicamente un ARGUMENTO en una función de C++ es el valor o valores que ALIMENTAN (datos de ENTRADA) a mi función para que esta pueda realizar su trabajo. Y por ultimo se especifica cual sera el valor de RETORNO de la función, es decir el valor que "sobrevive" tras la ejecución de la función para poder ser utilizado en el programa mas adelante.

fase de Llamada a la Función

Como es fácil intuir . la DEFINICIÓN de las funciones se hace fuera de la función principal MAIN, por lo tanto , para poder ejecutar la función que ya hemos definido, hay que hacer una LLAMADA a la función. De otro modo, si solo la definimos pero no la llamamos, el programa simplemente ignora su existencia.

Ejemplo. 
   int main()
{      
      ....//algunas instruciones 
        int X=13;
        NOMBRE_FUNCION( X ); // Como se observa la LLAMADA a la función es solo con su -
        // mas instrucciones               ///// nombre y el argumento si este se especifica.
         return 0;
}

Funciones INLINE

Hay otra forma de definir a nuestras funciones y es con la palabra reservada, inline. Se utiliza principalmente para funciones con pocas instrucciones que realizan un labor que puede repetirse (Hacer varias LLAMADAS) durante la ejecución del programa. La diferencia con una función convencional es que las funciones inline se ejecutan "al vuelo", es decir cada que el programa encuentra una llamada a una función inline, por así decirlo, sustituye esa llamada por la lista de instrucciones que contiene. ¿Que ventajas resultan de esto?, bueno, en aplicaciones GRANDES, sistemas completos, aumenta la eficiencia del programa, y el peso del archivo ejecutable disminuye considerablemente. 

ejemplo.     inline int suma( int a, int b) { int c=a+b; return c;} 

Comentarios

Entradas populares de este blog

Crear la funcion gotoxy(), en dev-c++ ... ejemplo sencillo.

Ejercicio de C++, ejemplo: promedio de un Alumno y la sentencia IF

Como dar formato a los decimales en C++