Hola a todos, disculpenme por molestarlos de nuevo, solo quiero saber si, por ejemplo, en un archivo llamado "A.inc" tengo esto:
#define HEAD int a;char b;
...
Y en el archivo "main.prg" tengo esto:
#include "A.inc"
process main()
Private
HEAD
end
begin
//lo demas
end
Hasta el momento, esto no me complia, lo que quiero hacer es una "reutilizacion" de variables por proceso,
sintener que recurrir a public, ni escribir el mismo codigo vez tras vez. ¡existe alguna manera posible de hacerlo?.
De antemano gracias.
compila perfectamente
Copyright � 2006-2011 SplinterGU (Fenix/BennuGD)
Copyright � 2002-2006 Fenix Team (Fenix)
Copyright � 1999-2002 Jos� Luis Cebri�n Pag�e (Fenix)
File t.dcb compiled (13568 bytes):
Processes 1
Global data 140 bytes
Local data 44 bytes
Private data 8 bytes
Public data 0 bytes
Code 4 bytes
System processes 3
Globals vars 3
Locals vars 7
Private vars 2
Publics vars 0
Identifiers 189
Structs 1
Strings 3 (21 bytes)
Lo que buscas no se hace con define, sino con TYPE
TYPE head
int a;
char b;
END
Esto lo pones fuera de todas las secciones (recomendable ponerlo antes de la declaración de GLOBAL, LOCAL y demás, o en un include, como haces ahora) y ya puedes crear todas las variables que quieras de ese tipo.
process...
private
head mi_variable;
begin
mi_variable.a=45;
...
Eso sí, dichas variables respetan las mismas normas de "visibilidad" (acceso) según se declaren como GLOBAL, LOCAL, PUBLIC o PRIVATE.
drumpi, no es lo mismo, no es lo que pide... el no quiere acceder a mivariable.a, quiere acceder a "a".
le estas proponiendo lo que no pidio.
asi como lo hizo esta bien... no se que error le da, pero a mi me compila perfecto.
El asunto puntual es el siguiente: tengo a.inc:
#define A private int a;char b; end
Y ahora b.prg:
#include "a.inc"
process main()
A
begin
end
Y lo que me da es esto (por favor ver anexo):
¿Puede ser que A tenga el mismo nombre que una de las variables que contiene? Ten en cuenta que bennu no es sensible a mayúsculas y minúsculas, como otros lenguajes.
Es sólo una suposición, porque me he perdido un poco, no sé qué es lo que estás haciendo ^^U
claro hombre, int "a", la A esta definiendose recursivamente.
De hecho, repitiendo mi primer "ejemplo" tal cual no me da ningun problema, asi que creo que tienen razon sobre la variable recursiva, gracias a los dos por su ayuda!! :) :)
Una ultima pregunta: exite alguna manera de incluir "nuevas lineas" en un define?, por ejemplo:
#define PEDAZO private[nueva linea]
int a;[nueva linea]
char b;[nueva linea]
end[nueva linea]
Es decir, todo en un define DEBE necesariamente estar en una misma linea??
Gracias de nuevo!!.
sin con una \ al final.