Commit 42c61101 authored by Julia Yip's avatar Julia Yip

Revisado capitulo de funções!

parent 7d07a31b
......@@ -5,17 +5,16 @@
\chapter{Funções}
Uma função é uma seção independente de código em C, designada por um nome,
que realiza uma tarefa específica e, opcionalmente,
retorna um valor ao programa que a chamou.s
Uma função é uma seção independente de código em C. Designada por um nome, realiza uma tarefa específica e, opcionalmente,
retorna um valor ao programa que a chamou.
\section{Protótipo}
O protótipo da função fornece ao compilador uma descrição de uma função que
será definida posteriormente no programa. O protótipo inclui o tipo de
será definida posteriormente no programa. Ele inclui o tipo de
retorno, que indica o tipo de variável que a função retornará.
Além disso, ele inclui também o nome da função, os tipos de variáveis dos argumentos que
serão passados para a função e opcionalmente o nome dos argumentos.
serão passados para a função e, facultativamente, o nome dos argumentos.
O protótipo sempre termina com `;'.
\begin{lstlisting}
......@@ -24,13 +23,11 @@ tipo_de_retorno nome_funcao (tipo1 arg1,..., tipoN argN);
\section{Definição}
A definição da função é a função propriamente dita.
A definição contém as instruções que serão executadas.
A primeira linha de uma definição de função, chamada de cabeçalho da função,
deve ser idêntica ao protótipo da função, com exceção do ponto-e-vírgula final.
É a função propriamente dita, a definição contém as instruções que serão executadas.
A primeira linha, chamada de cabeçalho, deve ser idêntica ao protótipo da função com exceção do ponto-e-vírgula final.
Os nomes das variáveis usadas como argumentos devem necessariamente
ser incluídos no cabeçalho. A seguir vem o corpo da função, contendo as
instruções que a função executará contidas num bloco.
ser incluídos no cabeçalho. A seguir vem o corpo, contendo, em um bloco, as
instruções que a função executará.
Se o tipo de retorno da função não for void, uma
instrução return deve ser incluída para retornar um valor compatível com o
tipo de retorno especificado.
......@@ -49,7 +46,7 @@ tipo_de_retorno nome_funcao(tipo1 arg1, ..., tipoN argN)
Especifica o tipo de dado que a função deverá retornar ao programa
que a chamou. O tipo pode ser qualquer dos tipos válidos em C ou um
tipo definido pelo programador. A função pode não retornar nenhum valor.
tipo definido pelo programador. A função também pode não retornar nenhum valor.
\begin{lstlisting}
int func1(...) // retorna um tipo int
......@@ -58,7 +55,7 @@ void func2(...) // não retorna dados
Para retornar um valor a partir de uma função, é usada a palavra-chave return
seguida por uma expressão válida em C. Quando a execução atinge a instrução
return, a expressão é avaliada e o valor é transmitido para o programa que
return, esta expressão é avaliada e o valor é transmitido para o programa que
originou a chamada. O valor de retorno de uma função é o valor da expressão.
\begin{lstlisting}
......@@ -75,15 +72,14 @@ int func1(...)
\subsection{Nome da função}
Pode ser qualquer nome, contanto que siga as regras adotadas para atribuir
É possível o uso de qualquer nome desde que siga as regras adotadas para atribuir
nomes de variáveis em C. O nome da função deve ser único e é sempre
aconselhável usar um nome que reflita a finalidade da função.
\subsection{Corpo da função}
É delimitado por chaves e colocado imediatamente após o cabeçalho da função.
Quando uma função é chamada, a execução começa no início do corpo e termina
(retornando ao programa de origem) quando uma instrução return é encontrada
Quando uma função é chamada, a execução começa no início do corpo e termina -- retornando ao programa de origem -- quando uma instrução return é encontrada
ou quando a execução chega ao final do bloco.
Podemos declarar variáveis dentro do corpo de uma função. Estas variáveis
......@@ -103,14 +99,14 @@ variável original.
\subsection{Chamadas por referência}
Neste caso a função recebe o endereço de memória (uma referência) do
Neste caso, a função recebe o endereço de memória, uma referência do
parâmetro, ao invés do valor do parâmetro. Desta forma, a função pode alterar
o valor da variável mediante a utilização deste endereço.
Tanto a função quanto o programa devem ser informados de que um parâmetro é
chamado por referência utilizando os operadores \& (para passar um endereço)
e * (para receber um endereço).
chamado por referência utilizando os operadores \& -- para passar um endereço --
e * -- para receber um endereço.
exemplo:
Exemplo:
\lstinputlisting{exemplos/funcao_parametro_por_valor_e_referencia.c}
......@@ -126,9 +122,9 @@ Depois de chamar por ref() : x = 0, y = 0, z = 0
Obs.:
\begin{description}
\item[\&] Passa o endereço de memória da variável passada por parâmetro e,
\item[\&]: Passa o endereço de memória da variável passada por parâmetro e,
portanto, as modificações sobre esta variável realizadas na função são permanentes.
\item[*] Acessa o conteúdo de tal endereço de memória.
\item[*]: Acessa o conteúdo de tal endereço de memória.
\end{description}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment