É inútil testar o fim de ambas as
cadeias! Se terminarem ao mesmo tempo, então o teste a
apenas uma delas é suficiente. Se não terminam ao mesmo
tempo, então o teste à diferença dos caracteres
correntemente apontados garante a terminação do ciclo,
pois o caractere nulo numa das cadeias é sempre
diferente do caractere não-nulo na outra.
No livro "The C Programming
Language" (segunda edição), B. Kernighan e D.
Ritchie, Prentice Hall, 1988, os nomes utilizados são
"interno" vs. "externo", o que
provoca alguma confusão face ao qualificador extern.
Repare-se no significado (infelizmente)
totalmente diverso do qualificador static quando
aplicado a objectos locais ou globais:
Objectos locais
O qualificador static altera a permanência
dos objectos, passando estes de automáticos
a estáticos.
Objectos globais
O qualificador static altera a validade
dos objectos, passando estes de externos a
internos.
Note-se que o ANSI-C não garante que
sejam distinguidos mais do que os primeiros seis (6)
caracteres dos nomes dos objectos externos! Por isso, em
rigor, os nomes apresentados no exemplo não são
apropriados!
Assim, poderá ser conveniente expurgar
o ficheiro de registo de todos os registos livres antes
de sair do programa. Como o faria?