[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: Leonardo Giantini Trabuco <ltrabuco@cecm.usp.br>
- Date: Fri, 7 Jun 2002 13:22:41 -0300 (BRT)
On Fri, 7 Jun 2002, Yoshiharu Kohayakawa wrote:
> 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);
acho que não entendi... o que seria NEW? Tenho que criar uma função que
recebe uma string e um inteiro, declarar um Item dentro do corpo desta
função atribuir os valores separadamente e retornar este Item?
>
> 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.
>