[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
- Subject: RE: Declaração e atribuição de estrutura
- From: Yoshiharu Kohayakawa <yoshi@ime.usp.br>
- Date: Fri, 7 Jun 2002 13:05:06 -0300
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.