Funções em C
Cabeçalhos Cada biblioteca-padrão tem um cabeçalho correspondente que contém os protótipos e definições de função para todas as funções que compõem essa biblioteca. A figura a seguir lista alguns cabeçalhos da biblioteca-padrão que podem ser incluídos nos programas.
Cabeçalhos Você também pode criar um cabeçalho próprio, contendo o protótipo e definição da respectiva função. Um cabeçalho definido pelo programador também deve utilizar a extensão.h Um cabeçalho definido pelo programador pode ser incluído em um programa utilizando a diretiva #include. Exemplo: se a definição da função maximum estiver localizada no cabeçalho max.h, podemos incluir esse cabeçalho em nosso programa usando a seguinte diretiva: #include "max.h"
Cabeçalhos 1) File New File
Cabeçalhos 2) Selecionar C/C++ header
Cabeçalhos 3) Definir nome e localização do arquivo
Cabeçalhos Seguindo esse procedimento o cabeçalho será criado com a extensão.h e conterá algumas diretivas necessárias para funcionar corretamente.
Cabeçalhos
Cabeçalhos
Variáveis e armazenamento Já vimos que a declaração de uma variável necessita de alguns atributos como: tipo, nome e valor. Exemplo: int max = 0; O nome é utilizado por variáveis e funções para permitir que o compilador reconheça e identifique cada um desses elementos Nome = identificador (sinônimo).
Escopo O escopo de um identificador é a parte do programa em que o identificador pode ser utilizado. Escopo = bloco de código onde uma variável é válida. Variáveis Locais; Variáveis Globais;
Variáveis Locais Variáveis locais são aquelas válidas apenas no interior da função onde ela está declarada. Exemplo: Se declaramos int x dentro da função main, apenas a função main poderá utilizá-la para guardar dados e nenhuma outra função poderá modificar o int x da função main.
Variáveis Locais Perceba que a variável x só pode ser utilizada pela função main e a variável y só pode ser utilizada pela função obtery. Para utilizar o valor de y, foi necessário guardar esse valor em uma outra variável local da função main (valory).
Variáveis Globais As variáveis globais são declaradas da mesma forma que uma variável local - primeiro o tipo, depois o nome da variável e se necessário inicializada com um valor. A diferença é que esta variável é declarada fora de qualquer função. Variáveis globais podem ser utilizadas por qualquer função. Qualquer função pode alterar o seu valor e utilizá-la em um processo
Variáveis Globais Perceba que a variável iniciado está sendo usada nas funções main e start. Toda vez que a função start é chamada, soma-se um a iniciado. Dentro da função main existe a variável x, que também deve ser incrementada toda vez que chamamos main. As variáveis locais estão presas às funções. Cada vez que chamamos uma função, também chamamos as variáveis dentro da função. Se finalizamos uma função, também finalizamos a variável. Se reiniciamos a função, também reiniciamos a variável daquela função. Por isso x tem sempre o mesmo valor.
Variáveis Globais A variável global persiste na memória. O fato de reiniciar o programa pouco importa, porque o valor de iniciado não é reinicializado quando chamamos uma função (a não ser que o programa especifique isso). A desvantagem da variável global é a dificuldade de lidar com ela. Devemos usar variáveis globais apenas quando realmente necessário. Imagine usar uma variável global em um programa com 10 ou mais funções, todas elas utilizando e alterando uma mesma variável global. Ao final das operações, dificilmente será possível prever o resultado. Isso dificulta a lógica do nosso programa, deixando-o difícil de interpretar.
Locais x Globais É muito comum programadores iniciantes confundirem as variáveis declaradas em main( ) com variáveis globais. Isto é um erro conceitual. As variáveis declaradas dentro da função main( ) são locais à mesma. Para ser global a variável tem que ser declarada fora do bloco de qualquer outra função, inclusive fora da main(). Podem existir variáveis locais e globais com o mesmo nome? Sim. Caso isto ocorra, as variáveis irão se comportar como variáveis diferentes, embora possuam o mesmo nome.