silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: bug SEVERE fnc+sub n°2: variables globales corrompus Dim 16 Sep 2018 - 13:38 | |
| Dans une FNC, une variable globale est corrompu si une variable locale porte le même nom qu'elle: - Code:
-
dim a,ma_variable_A,var% ma_variable_A=7 var%=7
print "programme principal,ma_variable_A globale = ",ma_variable_A :' c'est la variable GLOBALE, elle vaut 7!
a=UNE_FNC_QUELCONQUE(var%)
print "programme principal, ma_variable_A globale = ",ma_variable_A :' c'est la variable GLOBALE, elle vaut 7!
END fnc UNE_FNC_QUELCONQUE(i%) dim_local ma_variable_A ma_variable_A=i% ma_variable_A=ma_variable_A+1 print "fnc, ma_variable_A locale = ",ma_variable_A :' c'est la variable LOCALE, elle vaut 8! PRINT_MA_VARIABLE_GLOBALE() result 0 end_fnc
sub PRINT_MA_VARIABLE_GLOBALE() print "sub éxécuté dans une fnc, ma_variable_A globale = ",ma_variable_A :' c'est la variable GLOBALE, elle devrait être égale à 7! end_sub Le même exemple, uniquement composé de subs, là pas de problême: - Code:
-
dim ma_variable_A,var% ma_variable_A=7 var%=7
print "programme principal,ma_variable_A globale = ",ma_variable_A :' c'est la variable GLOBALE, elle vaut 7!
UNE_SUB_QUELCONQUE(var%)
print "programme principal, ma_variable_A globale = ",ma_variable_A :' c'est la variable GLOBALE, elle vaut 7!
END sub UNE_SUB_QUELCONQUE(i%) dim_local ma_variable_A ma_variable_A=i% ma_variable_A=ma_variable_A+1 print "fnc, ma_variable_A locale = ",ma_variable_A :' c'est la variable LOCALE, elle vaut 8! PRINT_MA_VARIABLE_GLOBALE() end_sub
sub PRINT_MA_VARIABLE_GLOBALE() print "sub éxécuté dans une sub, ma_variable_A globale = ",ma_variable_A :' c'est la variable GLOBALE, elle vaut 7! end_sub | |
|