Fundamentos de Programação 1 - Alcides Maya Tecnologia
Fundamentos de Programação 1 - Alcides Maya Tecnologia
Fundamentos de Programação 1 - Alcides Maya Tecnologia
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
printf(“%s e %s se amam\n”, nome1, nome2);<br />
printf(“Pressione uma tecla”);<br />
}<br />
poemsg( )<br />
{<br />
char nome1[ ]=”Barney”;<br />
char nome2[ ]=”Bety”;<br />
printf(“%s e %s são casados\n”, nome1, nome2);<br />
}<br />
71<br />
<strong>Fundamentos</strong> <strong>de</strong> <strong>Programação</strong><br />
Agora algumas consi<strong>de</strong>rações sobre o programa:<br />
• Veja que as variáveis nome1 e nome2 da função main( ), permanecem com as mesmas informações antes<br />
e <strong>de</strong>pois da chamada da função poemsg( ).<br />
Variáveis globais<br />
Nos programas utilizados até agora foram utilizadas variáveis <strong>de</strong>claradas <strong>de</strong>ntro das funções, ou seja, <strong>de</strong>ntro<br />
<strong>de</strong> seu próprio bloco, consi<strong>de</strong>radas, portanto privadas ao bloco on<strong>de</strong> foram <strong>de</strong>clarada e nenhuma outra função<br />
tem acesso direto a elas. O mesmo é verda<strong>de</strong>iro para variáveis <strong>de</strong> outras funções.<br />
Cada variável local numa rotina passa a existir somente quando a função é chamada e <strong>de</strong>ixa <strong>de</strong> existir<br />
quando a função termina.<br />
Devido às variáveis locais virem e irem com a ativação da função, elas não retêm seus valores <strong>de</strong> uma<br />
chamada para outra, e <strong>de</strong>vem ser explicitamente inicializadas a cada ativação. Se elas não forem inicializadas,<br />
conterão lixo.<br />
Como uma alternativa, é possível <strong>de</strong>finir variáveis que sejam externas a todas as funções, isto é, variáveis<br />
globais que possam ser acessadas pelo nome por qualquer função que assim o <strong>de</strong>sejar.<br />
Visto que as variáveis externas sejam globalmente acessíveis, po<strong>de</strong>m ser usadas, ao invés <strong>de</strong> listas <strong>de</strong><br />
argumentos, para comunicar dados entre funções. Além do mais, <strong>de</strong>vido às variáveis externas existirem<br />
permanentemente, ao invés <strong>de</strong> aparecerem com a ativação e <strong>de</strong>sativação <strong>de</strong> funções, elas retêm seus valores<br />
mesmo quando as funções que as acessam <strong>de</strong>ixam <strong>de</strong> existir.<br />
Uma variável externa <strong>de</strong>ve ser <strong>de</strong>finida fora <strong>de</strong> qualquer função; isso aloca armazenamento para as mesmas.<br />
A variável <strong>de</strong>ve também ser <strong>de</strong>clarada em cada função que <strong>de</strong>sejar acessa-la; isso po<strong>de</strong> ser feito por uma<br />
<strong>de</strong>claração explícita extern ou implicitamente pelo contexto.<br />
Vamos ver um pequeno programa que possa exemplificar o uso <strong>de</strong> variáveis externas.<br />
char nome1[ ]=”Fred”;<br />
char nome2[ ]=”Vilma”;<br />
main( )<br />
{<br />
extern char nome1[ ];<br />
extern char nome2[ ];<br />
printf(“%s e %s sao casados\n”, nome1, nome2);<br />
poemsg( );<br />
printf(“%s e %s se amam\n”, nome1, nome2);