Bonjour à tous!
Ceci est plus une remarque qu'une question...
Une fonction est censée renvoyer un résultat, pourtant, si on ne met pas de renvoi dans le code, cela compile! Pas que ça m'embête, mais ça m'a surpris!!!
De plus, pour moi, une fonction est comme une valeur, pourtant juste une valeur sur une ligne donne une erreur à la compilation, pas une fonction!
Mais ... Un petit exemple vaut mieux qu'un long discours :
Bon ... Je sais, ce code ne sert à rien!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 program exple; function a : integer; begin writeln('On est dans a, sans a:=...'); readln; end; function b : integer; begin writeln('Entree dans b'); b:=3; readln; end; BEGIN a; b; {Ceci compile, par contre, " 3; " ne compile pas!} writeln(b); readln; END.
Mais, par contre, je trouve bizzarre qu'il compile : dans la fonction a, il n'y a pas de a:=..., comment cela se fait-il?
Et... pourquoi a; ou b; compile, alors que ce sont des fonctions et pas des procédures?
Bon ... C'est pas trop gênant, hein! Juste un peu perturbant, la première fois qu'on s'en rend compte!
Merci! A bientot!
Partager