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á.