¿Hay alguna diferencia entre usar struct o type?, porque a mi parecer son lo mismo. ???
Salu2
con type definis un tipo de dato, como si fuera un int, float, etc
struct es una variable
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
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
Entoces el type se puede declarar las veces que quiera mientras la struct es unica, creo que lo he entendido
Gracias por la ayuda
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.
me referia a que puedes tener varios type privados pero una struct para todos
¿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.
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
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".
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. :)
perfecto! es eso mismo! te has expresado perfectamente. :)
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...
el compilador piensa que es un proceso que vas a crear.
proba con otro tipo de datos.
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
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