Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: JMP on June 28, 2010, 02:47:02 PM

Title: Diferencia STRUCT y TYPE
Post by: JMP on June 28, 2010, 02:47:02 PM
¿Hay alguna diferencia entre usar struct o type?, porque a mi parecer son lo mismo. ???


Salu2
Title: Re: Diferencia STRUCT y TYPE
Post by: SplinterGU on June 28, 2010, 05:38:08 PM
con type definis un tipo de dato, como si fuera un int, float, etc

struct es una variable
Title: Re: Diferencia STRUCT y TYPE
Post by: JMP on June 28, 2010, 05:45:00 PM
No te he entendido bien, yo cuando los uso lo puedo hacer asi y con ambos consigo lo mismo, lo unico que el type lo tengo que declarar


TYPE algo
      int algo;
      string algo2;
end
STRUCT algo
      int algo;
      string algo2;
end
Title: Re: Diferencia STRUCT y TYPE
Post by: SplinterGU on June 28, 2010, 05:55:28 PM
type no es una variable creada que la podes usar directamente asignandole valor, es un tipo que te sirve para declarar variables de ese tipo

struct es una variable ya declarada, le podes asignar valores, y usarlos.

type:


type lala
  int a;
  string b;
end

begin
   lala.a = 10; // <<< error
end



type lala
  int a;
  string b;
end

private
lala c;
begin
   c.a = 10;  // <<< ok
end


struct:


struct lala
  int a;
  string b;
end

begin
   lala.a = 10; // <<< ok
end

Title: Re: Diferencia STRUCT y TYPE
Post by: JMP on June 28, 2010, 06:15:36 PM
Entoces el type se puede declarar las veces que quiera mientras la struct es unica, creo que lo he entendido


Gracias por la ayuda
Title: Re: Diferencia STRUCT y TYPE
Post by: SplinterGU on June 28, 2010, 06:17:54 PM
no, no, type se declara una sola vez, variables del tipo TYPE (o sea, con el formato definido en type) se pueden declarar las veces que uno quiera.

si te referias a eso, si.
Title: Re: Diferencia STRUCT y TYPE
Post by: JMP on June 28, 2010, 06:48:59 PM
me referia a que puedes tener varios type privados pero una struct para todos
Title: Re: Diferencia STRUCT y TYPE
Post by: Drumpi on June 28, 2010, 06:53:37 PM
¿Sabes lo que es el tipo INT, BYTE, WORD? pues con type creas uno de estos nuevos, y puedes crear variables de este tipo en cualquier parte del programa.

Type sólo se pone una vez, pero puedes declaras variables de ese tipo de cualquier clase: GOLBAL, LOCAL, PRIVATE, PUBLIC... y en cualquier sitio.

Lo que pasa es que a la hora de usar una variable del tipo que definas o una struct no hay diferencia, creo.
Title: Re: Diferencia STRUCT y TYPE
Post by: JMP on June 28, 2010, 07:00:43 PM
pues eso e dicho, que pones-


type bla
  int a;
end

process o()
private
  bla aa;
end
begin
end

process e()
private
  bla aa;
end
begin
end
Title: Re: Diferencia STRUCT y TYPE
Post by: SplinterGU on June 28, 2010, 07:11:36 PM
si, asi si, puede tambier ser

blah bb en algunos procesos u otro nombre.

tambien puedes tener alguna variable de "TIPO" blah en locales, globales o publicas.

el problema es que cuando dices "varios types" esta mal, porque TYPE es uno solo, lo que son multiples son variables del tipo definido en TYPE.

TYPE es como armar una definicion de una structura, pero no asignarla a ninguna variable, es solo una "definicion de tipo", no es una variable (como lo es el caso del struct).

no me queda claro si se entendio o siguen existiendo dudas, lo digo por cuando dices "varios types".
Title: Re: Diferencia STRUCT y TYPE
Post by: JMP on June 28, 2010, 07:26:45 PM
Sí que lo entiendo, no hay varios types sino varias variables de ese tipo.

No se si me he expresado bien pero lo que es el concepto lo tengo. :)
Title: Re: Diferencia STRUCT y TYPE
Post by: SplinterGU on June 28, 2010, 08:24:45 PM
perfecto! es eso mismo! te has expresado perfectamente. :)
Title: Re: Diferencia STRUCT y TYPE
Post by: grisendo on June 29, 2010, 08:08:29 PM
Ya que estamos, esto es normal?

[code language="bennu"]
int arbolBinario;
arbolBinario arbol;
[/code]

Es decir, yo declaro en la primera línea un entero de nombre "arbolBinario"... y en la segunda declaro un arbolBinario de nombre "arbol"!!!! Y funciona!!! Es como si hubiese hecho un typedef...

No tengo ningún problema con esto, simplemente me acabo de acordar leyendo este post...
Title: Re: Diferencia STRUCT y TYPE
Post by: SplinterGU on June 30, 2010, 12:27:57 AM
el compilador piensa que es un proceso que vas a crear.

proba con otro tipo de datos.
Title: Re: Diferencia STRUCT y TYPE
Post by: Windgate on June 30, 2010, 09:10:49 AM
Quote from: grisendo on June 29, 2010, 08:08:29 PM
Ya que estamos, esto es normal?

[code language="bennu"]
int arbolBinario;
arbolBinario arbol;
[/code]

Eso es más o menos como cuando intentas declarar una variable de tipo bool, el tipo realmente no existe, y creas una variable de tipo int junto con otra variable más de tipo int que se llama bool, ¿Era así verdad? ;D
Title: Re: Diferencia STRUCT y TYPE
Post by: SplinterGU on June 30, 2010, 04:00:32 PM
no no, no crea 2 variables...

aca vas a ver lo que pasa...


import "mod_say";

private
float pepe;
pepe mama;
begin

pepe = 1.23;
mama = 22.3;

say (pepe);
say(mama);
end