CURSO DE C

Introdução às Funções


Uma função é um bloco de código de programa que pode ser usado diversas vezes em sua execução. O uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C consiste, no fundo, de várias funções colocadas juntas.

 Abaixo o tipo mais simples de função:

 

        #include <stdio.h>
        mensagem ()
        {
        printf ("Ola! ");
        }
        main ()
        {
        mensagem();
        printf ("Eu estou vivo!\n");
        }
Este programa terá o mesmo resultado que o primeiro exemplo da seção anterior. O que ele faz é definir uma função mensagem() que coloca uma string na tela. Depois esta função é chamada a partir de main() (que também é uma função).

 

Argumentos

Argumentos são as entradas que a função recebe. É através dos argumentos que passamos parâmetros para a função. Já vimos funções com argumentos. As funções printf()scanf() são funções que têm argumentos. Vamos ver um outro exemplo simples de função com argumentos:

 

        #include <stdio.h>
        square (int x)
        {
        printf ("O quadrado e %d",(x*x));
        }
        main ()
        {
        int num;
        printf ("Entre com um numero: ");
        scanf ("%d",&num);
        printf ("\n\n");
        square(num);
        }
Na definição de square() dizemos que a função receberá um argumento inteiro x. Quando fazemos a chamada à função, o inteiro num é passado como argumento. Há alguns pontos a observar. Em primeiro lugar temos de satisfazer aos requesitos da função quanto ao tipo e à quantidade de argumentos quando a chamamos. Apesar de existirem algumas conversões de tipo, que o C faz automaticamente, é importante ficar atento. Em segundo lugar, não é importante o nome da variável que se passa como argumento, ou seja, a variável num, ao ser passada como argumento para square() é copiada para a variável x. Dentro de square() trabalha-se apenas com x. Se mudarmos o valor de x dentro de square() o valor de num na função main() permanece inalterado.

 Vamos dar um exemplo de função de mais de uma variável. Repare que, neste caso, os argumentos são separados por vírgula e que deve-se explicitar o tipo de cada um dos argumentos, um a um. Note também que os argumentos passados para a função não necessitam ser todos variáveis porque mesmo sendo constantes serão copiados para a variável de entrada da função.

 

        #include <stdio.h>
        mult (float a,float b,float c)
        {
        printf ("%f",a*b*c);
        }
        main ()
        {
        float x,y;
        x=23.5;
        y=12.9;
        mult (x,y,3.87);
        }

Retornando valores

Muitas vezes é necessário fazer com que uma função retorne um valor. As funções que vimos até aqui retornam um valor inteiro, pois, na linguagem C, a não ser que seja especificado, as funções retornam um inteiro. Mas para dizer ao C o que vamos retornar precisamos da palavra reservada return. Sabendo disto fica fácil fazer uma função para multiplicar dois inteiros. Veja:

 

        #include <stdio.h>
        prod (int x,int y)
        {
        return (x*y);
        }
        main ()
        {
        int saida;
        saida=prod (12,7);
        printf ("A saida e: %d\n",saida);
        }
Veremos mais adiante como proceder a fim de que uma função retorne outros valores que não sejam inteiros. Quando aprendermos isto poderemos eliminar a mensagem de "warning" mencionada na seção anterior. Note que se você estava recebendo mensagens de "warning" para as funções anteriores, você não recebeu para a função prod() do programa anterior! Isto é porque a função prod() faz o que o compilador estava esperando: retorna um valor.

 

        #include <stdio.h>
        float prod (float x,float y)
        {
        return (x*y);
        }
        main ()
        {
        float saida;
        saida=prod (45.2,0.0067);
        printf ("A saida e: %f\n",saida);
        }

Forma geral

Apresentamos aqui a forma geral de uma função:

 


AUTO AVALIAÇÃO

Veja como você está.

  • Escreva uma função que some dois inteiros e retorne o valor da soma.


  • Página Anterior  Índice da Aula  Próxima Página

    Dúvidas? De uma olhadinha em nosso FAQ

    Perguntas para a lista do Curso de C