
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).
#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);
}
#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);
}
Veja como você está.
Perguntas para a lista do
Curso de C