Subprogramas en C • “Sinónimos” de subprograma Tema 7b – Método: utilizado en OO. – Módulo: Puede ser de más alto nivel. – Procedimiento: por lo general no devuelve un resultado. – Función: por lo general devuelve un resultado. Definición de subprogramas en C Subprogramas en C Subprogramas en C <tipo salida> <nombre funcion>(<parametros entrada>) void int double … main sumar borrar_HDD … <tipo> <nombre>, <tipo> <nombre>, … <tipo salida> <nombre funcion>(<parametros entrada>){ <instrucción>; <instrucción>; <instrucción>; … <instrucción>; Inicio } Cuerpo de la función Termino Ejemplo Void mostrar_bienvenida(){ printf(“********************\n”); printf(“** **\n”); printf(“** BIENVENIDO **\n”); printf(“** **\n”); printf(“********************\n”); } Invocación de subprogramas • Para ejecutar el código que define el cuerpo de una función, hay que realizar una invocación a la función. • Para invocar a una función basta con escribir el nombre de dicha función seguida de sus parámetros si es que los tuviera • Después de ejecutar la función, se sigue en la linea posterior a la invocación. 1 Ejemplo Void mostrar_bienvenida(){ 2 printf(“********************\n”); **\n”); 3 printf(“** 4 printf(“** BIENVENIDO **\n”); **\n”); 5 printf(“** 6 printf(“********************\n”); } void main(){ 1 mostrar_bienvenida(); 7 printf(“Adios!\n”); } Ejemplo void f(){ … } void g(){ … } void h(){ … } void main(){ f(); g(); f(); h(); } Ambito de una función • Las funciones están disponibles desde que se declaran hacia abajo • Lo que se define dentro de la función, solo lo puede usar la función • El código de la función esta “oculto” – Desde afuera de la función se ve como un todo – No se puede ejecutar “la mitad” de una función Definición comun y corriente Sin cuerpo (todavia) void f(){ … void g(){ … } } void h(){ … } void main(){ f(); g(); f(); h(); } Prototipos • Para independizar la definición de la función de su posicion en el código se generan prototipos. • Se define solo la declaración de la función • Es un “compromiso” de implementar la función • Para poder invocar a una funcion el compilador necesita saber – Cual es su nombre. – Cuales son sus parámetros. – Que tipo de dato devuelve. Prototipos <tipo salida> <nombre funcion>(<parametros entrada>); void main(){ f(); g(); f(); h(); } void f(){ … } void g(){ … } void h(){ … } Prototipos void main(){ f(); g(); f(); h(); } void f(){ … } void g(){ … } void h(){ … } void f(); void g(); void h(); void main(){ f(); g(); f(); h(); } void f(){…} void g(){…} void h(){…} 2 Fin tema 7b Definición de subprogramas en C 3