Anda di halaman 1dari 12

FUNES EM C:

ASPECTOS BSICOS
Professor: Leandro Basmage

Funes, so os principais blocos de construo de qualquer mdulo


escrito em C.
Uma funo um bloco de cdigo de programa que pode ser usado
diversas vezes em sua execuo. O uso de funes permite que o
programa fique mais legvel, mais bem estruturado. Um programa em C
consiste, no fundo, de vrias funes colocadas juntas. Apresentamos
aqui a forma geral de uma funo:
tipo_de_retorno nome_da_funo (lista_de_argumentos)
{ cdigo_da_funo }

Cabem aqui algumas observaes.


Quanto ao tipo_de_retorno: Quando uma funo no retorna nada,
recomendvel dizer isso explicitamente, adotando o tipo de retorno
como void. Caso o tipo de retorno seja simplesmente omitido, o
compilador adotar, por padro, o retorno como sendo do tipo int. Caso
isso acontea e o comando return no encontrado retornando algum
valor inteiro, ento o valor de retorno da funo ser tecnicamente
indefinido (cada compilador pode adotar o valor que quiser). Isto no
vem a ser um problema caso voc no especifique um tipo de retorno
(int ento adotado por padro) e esta funo no usada em
nenhuma expresso (ou seja, esse valor de retorno indefinido no
usado em lugar algum). Quando o tipo de retorno void, o compilador
impede que essa funo seja usada em qualquer expresso.
Quanto a lista_de_argumentos: Caso a funo no receba qualquer
argumento e o tipo void seja colocado na lista_de_argumentos, o
compilador impedir que a funo seja chamada com algum parmetro.
Caso nada seja especificado, ou seja, os parnteses estejam vazios, o
comportamento ser quase o mesmo.

A diferena que se a funo for chamada acidentalmente com


algum argumento, o compilador no reclamar disso. Abaixo, um
exemplo muito simples de uma funo:
Este programa simplesmente
imprimir duas mensagens na tela.
O que ele faz definir uma funo
Mensagem() que coloca string Hello,
World! na tela e no retorna nada
(void). Esta funo chamada a
partir de main() , que, como j
vimos, tambm uma funo. A
diferena fundamental entre main e
as demais funes do problema
que main uma funo especial,
cujo diferencial o fato de ser a
primeira funo a ser executada em
um programa.

ARGUMENTOS
Argumentos so as entradas que a funo recebe. atravs dos argumentos que
passamos parmetros para a funo. J vimos funes com argumentos. As funes
printf() e scanf() so funes que recebem argumentos. Vamos ver outro exemplo
simples de funo com argumentos:

Na definio de square() dizemos que a funo receber um


argumento inteiro x. Quando fazemos a chamada funo, o inteiro num
passado como argumento. H alguns pontos a observar. Em primeiro
lugar temos de satisfazer aos requisitos da funo quanto ao tipo e
quantidade de argumentos quando a chamamos.
Apesar de existirem algumas converses de tipo, que o C faz
automaticamente, importante ficar atento. Em segundo lugar, no
importante o nome da varivel que se passa como argumento, ou seja, a
varivel num, ao ser passada como argumento para square() copiada
para a varivel x. Dentro de square() trabalha-se apenas com x. Se
mudarmos o valor de x dentro de square() o valor de num na funo
main() permanece inalterado.

Vamos dar um exemplo de funo de mais de uma varivel. Repare


que, neste caso, os argumentos so separados por vrgula e que deve-se
explicitar o tipo de cada um dos argumentos, um a um. Note, tambm,
que os argumentos passados para a funo no necessitam ser todos
variveis porque mesmo sendo constantes sero copiados para a varivel
de entrada da funo.

RETORNANDO VALORES

Muitas vezes necessrio fazer com que uma funo retorne um valor. As
funes que vimos at aqui no retornavam nada. Podemos especificar um tipo
de retorno indicando-o antes do nome da funo. Mas para dizer ao C o que
vamos retornar precisamos da palavra reservada return. Sabendo disto fica fcil
fazer uma funo para multiplicar dois inteiros e que retorna o resultado da
multiplicao.

Veja que, como produto() retorna o valor de 12 multiplicado por 7, este


valor pode ser usado em uma expresso qualquer. No programa fizemos a
atribuio deste resultado varivel resultado, que posteriormente foi
impressa usando o printf(). Mais um exemplo de funo, que agora recebe
dois float e tambm retorna um float:

ESCOPO DE VARIVEIS

As variveis em C podem ser declaradas em trs lugares bsicos:


dentro de funes, na definio dos parmetros das funes e fora de
todas as funes. Estas so variveis locais, parmetros formais e
variveis globais, respectivamente. H diversas particularidades
importantes a serem observados em cada um dos casos .
VARIVEIS LOCAIS

Variveis que so declaradas dentro de uma funo so chamadas de


variveis locais. Variveis locais s podem ser referenciadas por
comandos que esto dentro do bloco no qual as variveis foram
declaradas. Em outras palavras, variveis locais no so reconhecidas
fora de seu prprio bloco de cdigo. Lembre-se, um bloco de cdigo iniciase em abre-chaves ({) e termina em fecha-chaves (}). Variveis locais
existem apenas enquanto o bloco de cdigo em que foram declaradas
est sendo executado. Ou seja, uma varivel local criada na entrada de
seu bloco e destruda na sada. O bloco de cdigo mais comum em que as
variveis locais so declaradas a funo.

VARIVEIS GLOBAIS

Ao contrario das variveis locais, as variveis globais so reconhecidas


pelo programa inteiro e podem ser usadas por qualquer pedao de cdigo.
Alm disso, elas guardam seus valores durante toda a execuo do
programa. Voc cria variveis globais declarando-as fora de qualquer
funo. Elas podem ser acessadas por qualquer expresso
independentemente de qual bloco de cdigo contem a expresso. No
programa seguinte, a varivel count foi declarada fora de todas as
funes. Embora sua declarao ocorra antes da funo main(), ela
poderia ter sido colocada em qualquer lugar anterior ao seu primeiro uso,
desde que no estivesse em uma funo. No entanto, melhor declarar
variveis globais no incio do programa.

Anda mungkin juga menyukai