Académique Documents
Professionnel Documents
Culture Documents
2] IDSYSTEMS
• Invocándola normalmente:
c = getchar ( );
m = raiz ( m );
• Tomando su dirección:
Cuando el nombre de una función aparece dentro de una expresión en un lugar que no es el
que le corresponde según el formato normal indicado antes, se genera un puntero a la
función. Esto permite pasar una función a otra.
main()
int f( ), g( );
...
...
g ( f );
...
1
[CURSO C++/LECCION 3.2] IDSYSTEMS
int g(funcion)
int (*funcion) ( );
...
(*funcion) ( );
...
4. Si se ejecuta una sentencia "return", el control regresa al medio que hizo la llamada.
6. Si no hay una sentencia "return", el control regresa al medio que hizo la llamada cuando se
llega al final del cuerpo de la función.
7. Si se ejecuta una sentencia "return" que no tiene expresión o si no hay sentencia "return",
entonces no se devuelve ningún valor determinado al medio de llamada (el valor de retorno
queda indefinido).
2
[CURSO C++/LECCION 3.2] IDSYSTEMS
3
[CURSO C++/LECCION 3.2] IDSYSTEMS
Al llamar a una función se le pueden pasar pasar valores por la lista de parámetros.
Las modificaciones en los valores de los parámetros formales de la función, no afectan a las
variables del medio que hizo la llamada. Si se quiere conseguir el efecto lateral de afectar a
las variables del medio de llamada, hay que inducir el paso por referencia, pasando
direcciones de variables en vez de sus valores:
4
[CURSO C++/LECCION 3.2] IDSYSTEMS
Variables locales
Variables globales
Las variables que no han sido declaradas ni como argumentos, ni en el cuerpo de una función
son "globales" a la función y deben estar definidas externamente:
5
[CURSO C++/LECCION 3.2] IDSYSTEMS