[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







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.
>