Está en la página 1de 13

Tema 9

Definición de subprogramas en C
Subprogramas en C1

• “Sinónimos” de subprograma
– 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.

Departamento de Ciencias de la Computación e Inteligencia


Artificial(SF):Subprogramas en C.Recuperado de
http://elvex.ugr.es/decsai/c/apuntes/subprogramas.pdf
Subprogramas en C

<tipo salida> <nombre funcion>(<parametros entrada>)

void main
<tipo> <nombre>,
int sumar <tipo> <nombre>,
double borrar_HDD …
… …
Departamento de Ciencias de la Computación e Inteligencia
Artificial(SF):Subprogramas en C.Recuperado de
http://elvex.ugr.es/decsai/c/apuntes/subprogramas.pdf
Subprogramas en C

<tipo salida> <nombre funcion>(<parametros entrada>){

<instrucción>;
<instrucción>;
<instrucción>;

<instrucción>; Inicio

Cuerpo de la función
Termino Departamento de Ciencias de la Computación e Inteligencia Artificial(SF):Subprogramas
en C.Recuperado de http://elvex.ugr.es/decsai/c/apuntes/subprogramas.pdf
Ejemplo
Void mostrar_bienvenida(){
printf(“********************\n”);
printf(“** **\n”);
printf(“** BIENVENIDO **\n”);
printf(“** **\n”);
printf(“********************\n”);
}
Invocación de subprogramas1
• 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.
Departamento de Ciencias de la Computación e Inteligencia
Artificial(SF):Subprogramas en C.Recuperado de
http://elvex.ugr.es/decsai/c/apuntes/subprogramas.pdf
Ejemplo
Void mostrar_bienvenida(){
2 printf(“********************\n”);
3 printf(“** **\n”);
4 printf(“** BIENVENIDO **\n”);
5 printf(“** **\n”);
6 printf(“********************\n”);
}

void main(){
1 mostrar_bienvenida();
7 printf(“Adios!\n”);
}
Ejemplo
void f(){ void main(){ void f(){
… f(); …
} g(); void g(){
void g(){ f(); …
… h(); }
} } }
void h(){ void f(){ void h(){
… … …
} } }
void main(){ void g(){ void main(){
f(); … f();
g(); } g();
f(); void h(){ f();
h(); … h();
} } }
Ambito de una función1
• 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
Departamento de Ciencias de la Computación e Inteligencia
Artificial(SF):Subprogramas en C.Recuperado de
http://elvex.ugr.es/decsai/c/apuntes/subprogramas.pdf
Prototipos1
• 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.
Departamento de Ciencias de la Computación e Inteligencia
Artificial(SF):Subprogramas en C.Recuperado de
http://elvex.ugr.es/decsai/c/apuntes/subprogramas.pdf
Prototipos1
<tipo salida> <nombre funcion>(<parametros entrada>);

Definición comun y corriente

Sin cuerpo (todavia)

Departamento de Ciencias de la Computación e Inteligencia


Artificial(SF):Subprogramas en C.Recuperado de
http://elvex.ugr.es/decsai/c/apuntes/subprogramas.pdf
Prototipos
void main(){ void f();
f(); void g();
g(); void h();
f();
h(); void main(){
} f();
void f(){ g();
… f();
} h();
void g(){ }

} void f(){…}
void h(){ void g(){…}
… void h(){…}
}
BIBLIOGRAFIA
• Departamento de Ciencias de la
Computación e Inteligencia
Artificial(SF):Subprogramas en
C.Recuperado de
http://elvex.ugr.es/decsai/c/apuntes/subprog
ramas.pdf

También podría gustarte