Funções (versão C/C++)
Em C++ existe uma opção intermédia
entre a função e uma macro. Uma função
pode ser declarada inline. Nesse caso as
funções têm “type checking” mas o
compilador (se entender que isso é
possível) substitui o código na zona de
chamada à função.
Exemplo:
inline int print_it(float x){return printf(“%f”, x);}
1
Funções (versão C/C++)
Em C/C++ uma função pode chamar-se a si
própria de forma recursiva.
Exemplo:
A recursividade implementa um tipo especial de
ciclo que por erro também pode ser infinito!
Correcto:
Erro:
(segmentation fault)
2
Funções (versão C/C++)
As funções correspondem a uma zona de memória e
por isso podem também ser referenciadas por um
ponteiro. Isso tem duas vantagens:
 Podemos criar funções cujo comportamento varia
consoante a função escolhida
 Podemos retornar uma função a partir de uma função.
Para declarar um ponteiro para função:
type (*f)(type1 , type2 , ... );
f passa então a ser um ponteiro para uma função que
retorna o tipo type e tendo por argumentos variáveis do
tipo type1 , type2 , ...
3
Funções (versão C/C++)
Exemplo: uma calculadora simples.
4
Download

Funções (versão C/C++)