GallyHC a écrit :Peut être mais (comme moi) tu travail toujours avec "EnableExplicit", tu es bien obliger de déclarer tes variables non?
GallyHC
c'est pourquoi je pense que "EnableExplicit" est un non sens en Basic aussi

!!
bon , plus serieusement
beaucoup de codeurs venant d'autres langage assimile le "Define" a une declaration !
ce n'est pas le cas !!
en Basic et bien sur en Purebasic , on a pas a déclarer une variable pour pouvoir s'en servir !
Define Permet d'assigner le même type de données à une série de variables.
il ne sert qu'a Attribuer (a Définir) un Type pour une variable
le seul avantage de ça c'est qu'on peut séparer par une virgule les attribution de Type ...
mais on peut aussi tout autant mettre en debut de code
variable.b =#False : toto.s="coucou"
cela sera tout autant valable !!
ne confondez pas DECLARATION de variable , avec ATTRIBUTION d'un type !
La déclaration d'une variable en PureBasic se fait en la nommant. Les variables n'ont pas besoin d'être explicitement déclarées et peuvent être utilisées "à la volée".
define ne sert qu'a Attribuer un TYPE ce n'est pas a proprement parler une declaration (il y a d'ailleurs une legere erreur dans la DOC a ce sujet )
EnableExplicit est une directive de compilation
qui oblige a utiliser Define, ou global qui semble rendre obligatoire la déclaration
mais en fait ça rend obligatoire la définition d'une variable !!
le but etant d'eviter d'utiliser plusieurs fois le meme nom avec des valeurs differente (ou type)
ça ne fait pas partie du langage a proprement parler, c'est une contrainte que propose le compilateur ..
on peut tre bien s'en passer , si on ne se melange pas les pinceaux avec les noms des variables !
je vois ça comme une bequille pour ceux qui code mal , parcequ'en principe si tu sais ce que tu codes
tu n'as pas de raison d'utiliser 2 fois le meme nom de variable pour ces choses differentes ..
sauf pour ceux qui comme moi , utilisent certains nom de variable a portée courte , que j'appel des variables "mouchoir"
comme le fameux "i" des boucles for-Next ..
bref.... en Basic les DECLARATIONs ne sont pas obligatoire (et n'existe pas en Basic et Purebasic)
et DEFINE ne sert pas a déclarer une variable , mais a DEFINIR un Type a la variable .... voila voila
