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

RE: Declaração e atribuição de estrutura



Leonardo Giantini Trabuco wrote (on Friday, 7 Jun 2002, at 11:54:57 -0300):
 > Olá!
 > 
 > Estou com uma dúvida.
 > 
 > Estou declarando um Item como uma estrutura que guarda uma string e um
 > inteiro.
 > 
 > -----------------------------------------------------------------------
 > 
 > typedef struct Item_struct { char *word; int rep; } Item;

OK

 > -----------------------------------------------------------------------
 > 
 > Quero definir o NULLitem como sendo o item t.q. item.word = NULL e
 > item.rep = 0.
 > 
 > Para isso, pensei em declarar a seguinte variável (em Item.h):
 > 
 > -----------------------------------------------------------------------
 > 
 > extern const Item nulo;

OK

 > -----------------------------------------------------------------------
 > 
 > Isso tornaria a variável disponível para todos os módulos que incluem
 > o header file Item.h, certo?

Sim.

 > Acontece que não sei como fazer as atribuições junto com a declaração. Se
 > fosse declarar um inteiro, por exemplo, posso inicializá-lo com 0:
 > 
 > -----------------------------------------------------------------------
 > 
 > int i = 0;
 > 
 > ----------------------------------------------------------------------- 
 > 
 > Como posso fazer isso com uma estrutura?

No Item.c, voce deve ter uma declaracao de nulo e nele voce deve inicializar o
valor dele:

#include "Item.h"

...

Item nulo = NEW(NULL,0);

Boa sorte!  Yoshi

PS Pode parecer estranho que, ao se compilar Item.c, o compilador verá duas
declaracoes de nulo: um "extern Item nulo" e um "Item nulo".  Isso é parecido
com funcoes: voce pode ter um prototipo declarado inicialmente, e depois é
dada a definicao da funcao:

int quadrado(int x);

int main()
{ ... }

int quadrado(int x)
{ return x*x; }

 > Obrigado....
 > Leo.