[Prévia cron] [Próxima Cron] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto] [Índice de autor]

Re: static



>Não quero - não posso ! - que uma variável global em arquivo.h seja
acessível em prog.c, neste havendo o #include "arquivo.h". Entendi como faz
para usar de fato - extern não é necessário se o #include estiver antes do
uso...

    Não é bem isso! Não é que a variável seja _definida_ no arquivo.h, e por
isso esteja disponível nos módulos que o incluem. O uso de extern é
necessário e é apenas uma _declaração_ de que existe, em algum lugar, uma
variável com aquele nome, e o módulo que incluir arquivo.h está habilitado a
vê-la. Só vai haver uma definição, em um dos módulos .C. Neste módulo, a
variável (global) tem duração estática, mesmo sem o uso da palavra static.
Se, no entanto, você acrescentar a palavra static, isto faz com que ela
ganhe internal linkage, e você não a compartilha mais.

    Foi isso que eu entendi que estava acontecendo no seu programa. Porém,
talvez eu não tenha entendido o uso que você queria, sinto muito! Talvez se
você mandar para a lista um exemplo do que você precisa...

Rubens