Fundamentos de Programação 1 - Alcides Maya Tecnologia
Fundamentos de Programação 1 - Alcides Maya Tecnologia
Fundamentos de Programação 1 - Alcides Maya Tecnologia
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Escola Alci<strong>de</strong>s <strong>Maya</strong> - Primeiro Módulo<br />
printf(“Pressione uma tecla”);<br />
getch( );<br />
}<br />
poemsg( )<br />
{<br />
extern char nome1[ ];<br />
extern char nome2[ ];<br />
printf(“%s e %s sao casados\n”, nome1, nome2);<br />
}<br />
Agora algumas consi<strong>de</strong>rações sobre o programa:<br />
• Veja que a <strong>de</strong>claração das variáveis nome1 e nome2 antes da função main( ), isto i<strong>de</strong>ntifica estas variáveis<br />
como sendo variáveis globais, ou seja, externas.<br />
• No inicio da função main( ) e também da função poemsg( ), <strong>de</strong>claramos o uso das variáveis globais com a<br />
<strong>de</strong>claração: extern char nome1[ ]; e extern char nome2[ ]; com isto estamos informando ao programa que vamos<br />
usar as variáveis globais <strong>de</strong>claradas antes <strong>de</strong> main( ).<br />
Consi<strong>de</strong>rações importantes<br />
As variáveis globais costumam ser chamadas <strong>de</strong> variáveis externas na linguagem C.<br />
Em main( ), as variáveis externas nome1 e nome2 são <strong>de</strong>finidas nas primeiras linhas do exemplo acima, que<br />
<strong>de</strong>finem seus tipos e alocam área <strong>de</strong> armazenamento para as mesmas.<br />
Sintaticamente <strong>de</strong>finições externas são iguais às <strong>de</strong>clarações que já usamos anteriormente, mas, como<br />
ocorrem fora das funções, as variáveis são externas.<br />
Antes <strong>de</strong> uma função usar uma variável externa, o nome da mesma <strong>de</strong>ve ser conhecido pela função. Uma<br />
maneira <strong>de</strong> fazer isso é escrever uma <strong>de</strong>claração extern na função; a <strong>de</strong>claração é igual à anterior, exceto que é<br />
precedida da palavra-chave extern<br />
Em certas circunstâncias, a <strong>de</strong>claração extern po<strong>de</strong> ser omitida. Se a <strong>de</strong>finição externa <strong>de</strong> uma variável ocorrer<br />
no arquivo fonte antes <strong>de</strong> seu uso numa função particular, então não há a necessida<strong>de</strong> <strong>de</strong> uma <strong>de</strong>claração extern<br />
na função. As <strong>de</strong>clarações extern em main( ) e poemsg( ) são, portanto, redundantes.<br />
De fato, a prática comum é colocar a <strong>de</strong>finição <strong>de</strong> todas as variáveis externas no início do arquivo fonte e,<br />
então, omitir todas as <strong>de</strong>clarações extern.<br />
Se o programa está em vários arquivos fonte, e uma variável é <strong>de</strong>finida em, digamos, arquivo1 e usada<br />
em arquivo2, então uma <strong>de</strong>claração extern é necessária no arquivo2 para conectar as duas ocorrências da<br />
variável.<br />
Baseado nisto o programa anterior po<strong>de</strong>ria ter sido escrito da seguinte forma:<br />
char nome1[ ]=”Fred”;<br />
char nome2[ ]=”Vilma”;<br />
main( )<br />
{<br />
clrscr( );<br />
printf(“%s e %s sao casados\n”, nome1, nome2);<br />
poemsg( );<br />
printf(“%s e %s se amam\n”, nome1, nome2);<br />
72