Baixe o app para aproveitar ainda mais
Prévia do material em texto
9/5/2006 08:31 1 Curso de C Funções 9/5/2006 08:31 2 Curso C - IC/UNICAMP Funções • Entender o conceito de função em C • Parâmetros • Mecanismos de passagem de parâmetros Objetivos: > 9/5/2006 08:31 3 Curso C - IC/UNICAMP Funções tipo nome(lista argumentos) { declarações locais corpo } > Declaração: int pot2(int k) { int val=1; for ( ; k>0; k-- ) val *=2; return val; } tipo nome argumentos declarações corpo retorno 9/5/2006 08:31 4 Curso C - IC/UNICAMP Funções #include <stdio.h> int pot2(int k) { int val=1; for ( ; k>0; k-- ) val *=2; return val;} int main(void) { int k,p; scanf(“%d”,&k); p = pot2(k); printf(“2^%1d = %1d\n”,k,p); return 0; } Chamada: > outra rotina chamada de pot2 NovaFunc 9/5/2006 08:31 5 Curso C - IC/UNICAMP Funções > Escopo de variáveis: int func (int i, float x); int main(void) { int i,k; float x,y; M1; M2; k=func(k, x+y); M3; return 0; } #include <stdio.h> int k; float z; int func (int i, float x) { int j; float z; F1; F2; return (i+j) } vars. globais protótipo rotina principal rotina 9/5/2006 08:31 6 Curso C - IC/UNICAMP Funções > Mapa de memória: memória i k x y M1 M2 i k x y arg1 arg2 prep. args. inicia main + transf. args. k y i j x z exec. func k z i x k z k z 9/5/2006 08:31 7 Curso C - IC/UNICAMP Funções > Param memória F1; F2 exec. func k y i j x z ret. valor k y i j x z + prep. ret. k yxi exec. main k z i x k z k z val. perdidos i x 9/5/2006 08:31 8 Curso C - IC/UNICAMP Funções > Escopo de variáveis: extern e auto extern int a=1; int b=2; void main(void) { int d; . . . . f1( ); . . . . } prog.c int c; void f1(void) { extern int a; int b=20; extern int c; . . . . } lib.c main f1 ba c b a c d c a b ExternAuto 9/5/2006 08:31 9 Curso C - IC/UNICAMP Funções > Escopo de variáveis: static e register int a ,b; void main(void) { int c; . . . . f1( ); . . . . } prog.c static int a; extern int b; void f1(void) { static int i=0; . . . . } lib.c main f1 b a b a a b a c i i StaticReg 9/5/2006 08:31 10 Funções • ConcatPt • AnagramaPt 9/5/2006 08:31 11 Funções Fim
Compartilhar