Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anterior Revisão anterior
definicao_funcao [d/mY H:i]
laureano
definicao_funcao [d/mY H:i] (atual)
laureano
Linha 46: Linha 46:
  
 Veja o exemplo: Veja o exemplo:
 +<code c>
 +/* programa definindo_funcao.c */
  
 +#include <​stdio.h>​
 +
 +int soma (int,  int); /* Declaração da função (protótipo da função.
 +                         Esta declaração indica que a função soma irá receber 2 valores inteiros e vai retornar 1 valor inteiro */
 +
 +int main (void)
 +{
 +   int iValor_a;
 +   int iValor_b;
 +   int iResultado;
 +
 +   ​printf("​Entre com os valores:"​);​
 +   ​scanf("​%d %d", &​iValor_a,​ &​iValor_b);​
 +
 +   ​iResultado = soma(iValor_a,​ iValor_b); /* chamada da função */
 +
 +   ​printf ("Soma : %d\n", iResultado);​
 +
 +   ​return 0;
 +}
 +
 +int soma (int a, int b) /* função soma que recebe 2 inteiros */
 +{
 +   ​return a + b; /* retornar 1 valor inteiro */
 +}
 +</​code>​
 +
 +===== Escopo de Variáveis =====
 +Entende-se como escopo de variáveis a área onde o valor e o nome dela tem significado. Pode-se ter dois tipos de variáveis na Linguagem C. O primeiro tipo é a variável global. Uma variável é global quando a mesma é definida fora de qualquer função. Esta variável pode ser usada em qualquer função e o significado dela abrange todo o programa fonte.
 +As variáveis locais são definidas dentro de funções e o seu significado é somente válido dentro da função. Assim têm-se duas variáveis com o mesmo nome em funções diferentes.
 +
 +
 +==== Variáveis Globais ====
 +As variáveis globais são definidas fora de qualquer função e o seu nome é válido para todo o programa. Qualquer função que alterar o seu conteúdo estará alterando para todo o programa pois estas variáveis ficam em uma área de dados disponível para todo o programa.
 +
 +==== Variáveis Locais ====
 +Quando uma variável é definida dentro de uma função, está sendo definindo uma variável local à função. Esta variável utiliza a pilha interna da função como memória, portanto ao final da função este espaço de memória é liberado e a variável não existe mais. Portanto a definição da variável só é valida dentro da função. ​
 +
 +Os parâmetros de uma função também são considerados variáveis locais e também utilizam a pilha interna para a sua alocação.
 +
 +<code c>
 +/* programa escopo_variavel.c */
 +
 +#include <​stdio.h>​
 +
 +int soma (int,  int);
 +int diferenca (int,  int);
 +void le_valores(void);​
 +
 +int G_iValor_a; /* Declarando as variáveis como públicas, ou seja, elas estarão disponíveis para uso em todo o programa. */
 +int G_iValor_b;
 +
 +int main(void)
 +{
 +   int iResultado; /* Variável local e portanto somente disponível para a função main */
 +
 +   ​le_valores();​
 +
 +   ​printf("​Soma : %d\n", soma (G_iValor_a,​ G_iValor_b));​ /* uso das variáveis públicas declaradas anteriormente. */
 +
 +   ​printf("​Diferenca : %d\n", diferenca (G_iValor_a,​ G_iValor_b));​ /* uso das variáveis públicas declaradas anteriormente. */
 +
 +   ​return 0;
 +}
 +
 +void le_valores(void)
 +{
 +   ​printf("​Entre com os valores:"​);​
 +   ​scanf("​%d %d", &​G_iValor_a,​ &​G_iValor_b);​ /* uso das variáveis públicas declaradas anteriormente */
 +   ​return;​
 +}
 +
 +int soma (int a, int b) /* Variáveis declaradas como parâmetros de função sempre são locais, portanto as variáveis a e b 
 +                           ​estão disponíveis para uso somente na função soma. */
 +{
 +   int iResultado; /* Variável local e portanto somente disponível para a função soma. Importante: não é a mesma variável definida anteriormente. */
 +
 +   ​iResultado = a + b;
 +   ​return iResultado;
 +}
 +
 +int diferenca (int a, int b) /* Variáveis declaradas como parâmetros de função sempre são locais, portanto as variáveis a e b estão disponíveis ​
 +                                para uso somente na função diferenca, embora na função soma também tenha sido utilizado o mesmo nome para as variáveis. ​ */
 +{
 +   int iResultado;
 +
 +   ​iResultado = a - b;
 +   ​return iResultado;
 +}
 +</​code>​
definicao_funcao.txt · Última modificação: d/mY H:i por laureano
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0