Pues eso, estoy un poco oxidado y ya no recuerdo si los argumentos declarados en los procesos son variables locales o privadas. Hay alguna forma de declarar parametros con scope publico?
Saludos!
import "mod_say"
local
int hola=0;
my_x,my_y;
end
process pepe(x,y )
begin
my_x = x;
my_y = y;
hola += 20 + x + y;
loop
frame;
end
end
process pepe2()
begin
hola +=50;
loop
frame;
end
end
Process Main()
private
unsigned int ga = 255;
unsigned int r = 255, g = 255, b = 255;
unsigned int a = 255;
char * rgba;
idpepe, idpepe2, idpepe3;
Begin
idpepe= pepe(1,2);
idpepe2 = pepe2();
idpepe3 = pepe(5,6);
say("var hola " + idpepe.hola ); //global var from process pepe
say("var hola2 " + idpepe2.hola ); //global var from process pepe
say("pepex " + idpepe.my_x + " pepey "+ idpepe.my_y ); //global var from process pepe
say("pepe3x " + idpepe3.my_x + " pepe3y "+ idpepe3.my_y ); //global var from process pepe
End
Entiendo!
¡Qué forma de complicarse con la respuesta! :D
Las variables de la declaración del proceso pueden ser locales o privadas (y públicas, si no recuerdo mal). Si la variable existe (es decir, se usa una local como X o ALPHA) se asigna a ella, de lo contrario se genera una variable privada con dicho nombre y dicho valor.
Como siempre, las privadas no se tienen acceso desde fuera.
Las locales se declaran una vez y cada proceso tiene la suya y se puede acceder mediante el id del proceso (idproceso.variablelocal = loquesea, ejemplo, la X e Y de cada proceso).
Las globales se declaran una vez, son únicas y se accede desde cualquier parte.
Y la Públicas son variables privadas que se pueden acceder desde otros procesos como si fueran locales.
Muy Chas gracias Drumpi! Ya me estaba complicando mucho!!
¡¡Se complique el código que se complique, ponte after-BIT-e!!
Lo siento, he dormido 4 horas y ya es muy tarde ^^U