cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 décembre 2018
-
9 sept. 2007 à 09:23
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 2008
-
11 sept. 2007 à 16:28
Bounjour,
Une bonne âme pourrait-elle me dire pourquoi, on trouve du code avec des tirets-bas devant les variables ou les fonctions?
Exemple : Var _parameters : AnsiString;
Merci à vous
jean_Jean
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202237 9 sept. 2007 à 20:38
la plupart du temps le underscore "_" est usité en C/C++.
devant un nom de variable/fonction elle permet de differencier un element public d'un element public-privé ou public-a utilisation interne.
exemple :
int _max(int a, int b) {
int mx;
mx = (a > b) ? a : b;
return mx;
}
int tri_max(int a, int b, int c) {
return _max(a, _max(b, c));
}
pour _max() on place le _ avant pour dire qu'elle est utilisée par une autre fonction.
pour tri_max() on le met entre tri et max parce qu'en C/C++ on utilise pas trop l'ecriture en dos de chameau.
maix c'est surtout une histoire de convention, selon si le langage est case sensitive ou pas.
en gros en delphi on utilise rarement underscore (sauf traduction d'un code C/C++ ou autre) et on l'utilise plus en C/C++ et autres langages.
et si on compare une api pur delphi d'une api pur C/C++ on trouvera toujours ce genre de differences :
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20082 9 sept. 2007 à 20:39
Salut !
Comme je l'ai dit dans un commentaire de source, le "_" en début de variable, ne sert à rien. A part gêner !
Certains aiment préfixer les variables locales en fonction du type:
var
INombre: Integer;
SNom, SPrenom: string;
A la limite certes, ça peut être utile.
Perso, je préfixe les variables dans les déclarations de classe avec "F", comme voulu par CodeGear
type
TMyClass = class
FNombre: Integer;
FNom: string;
end;
Tu peux aussi mettre "G" devant les globales.
var
GMonSingleton: TObject = nil;
GAppPath: string;
Mais sinon, les l'underscore ne sert à rien.
@Cantador:
"et les variables ramassées sont plus courtes d'où un gain de place mémoire.."
=> faux puisque le fichier généré (l'exécutable) ne contient pas le nom des variables.
Si tu parles du fichier source, ok, mais bon, on n'est pas à quelques Ko près.
cs_Jean_Jean
Messages postés615Date d'inscriptiondimanche 13 août 2006StatutMembreDernière intervention13 décembre 20183 9 sept. 2007 à 11:20
Merci Cantador pour ta réponse,
Dans le cas présent, le fait de commencer par un tiret bas, je ne trouve pas que ça éclarci beaucoup l'écriture.
Certes, j'utilise souvent ce que tu dis au milieu des mots, mais devant?
Est-ce que ça ne serait pas une question de code temporaire en cours de développement ou qlq chose comme ça?
Bien à toi
Jean_jean
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202114 9 sept. 2007 à 11:48
Non, à ma connaissance, je ne le pense pas et personnellement, j'utilise peu les
tirets bas car pour ma part, je trouve que c'est plus facile à lire sans :
Ex : DataSetEnCours à la place de DataSet_En_Cours
et les variables ramassées sont plus courtes d'où un gain de place mémoire..
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202114 9 sept. 2007 à 23:24
Je confirme, la taille des variables n'influent pas sur la taille de l'exécutable..
j'ai mal dit c'était simplement l'encombrement du source...
Car certains se plaisent à écrire des variables à rallonge comme si c'était des phrases :
ex : TTable_des_Utilisateurs_du_Forum_de_DelphiFr _Gna_Gna_Gna
etc..
je ne pense pas que quelque chose soit normalisée en ce domaine..
L'essentiel est d'avoir sa propre convention d'écriture et de s'y tenir
sauf bien sûr si on bosse en réseau avec d'autres..
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20082 10 sept. 2007 à 18:40
Ok f0xi pour les suffixes.
Je disais juste que j'ai vu bon nombre de codes qui préfixaient avec le type. D'où ma remarque: c'est idiot.
Pour TRectI et TRectF, ok car il y a deux types possibbles en fonction des données (entier ou flottant).
Mais écrire NomS, PrenomS, ça n'a pas d'intérêt... le nom étant rarement autre chose qu'une chaîne (Ansi ou Wide certes, mais là, c'est du chipotage).
Et puis, si tu as une variable Test: TTestCase.
Tu la suffixe, ça te donne TestT: TTestCase. Conclusion: t'es pas plus avancé !
"je ne pense pas que quelque chose soit normalisée en ce domaine.."
> Et bien détrompe-toi, borland de son temps à publié un guide de conventions de syntaxe.
C'est maintenant sur le site de CodeGear qu'il faut chercher: http://dn.codegear.com/article/10280 A posséder absolument dans les favoris.
"L'essentiel est d'avoir sa propre convention d'écriture et de s'y tenir
sauf bien sûr si on bosse en réseau avec d'autres.."
> Maintenant que tu connais la convention "officielle", tu es bien d'accord que c'est plus vers celle-là qu'il faut se tourner, non ?
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 11 sept. 2007 à 15:09
Borland édite des conventions mais ne s'y tiens pas
Exemple:
// INCORRECT
if A < B then DoSomething; (Utilisé par Borland dans ses sources)
// CORRECT if A < B then
DoSomething;
Autre Exemple:
// INCORRECT
for i := 0 to 10 do begin (Utilisé par Borland dans ses sources)
DoSomething;
DoSomethingElse;
end;
// CORRECT
for i : = 0 to 10 do
begin
DoSomething;
DoSomethingElse;
end;
Et il en existe d'autre
* Nous aussi nous utilisons les mêmes syntaxes incorrectes aux yeux de Borland : <dd>qui je le rappel les utilises aussi. * Ce qui reviens à dire ... faites ce que je dis pas ce que je fais :
Le jour ou les donneurs de leçons appliqueront leurs commandements je prendrais leurs recommandations
un peut plus au sérieux
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20082 11 sept. 2007 à 16:28
lol Cirec !
C'est sûr que vu de ce côté là...
Certes CodeGear n'est pas un organisme de "standardisation"*** mais comme c'est l'héritier de la communauté "officielle" de Delphi, il fait plus le "poids" face aux autres.
En plus, je trouve leur recommandation très juste puisque tout est vu dans une optique de lisibilité et d'unicité.
Après, sur certains points comme le rappelle Cirec, il peut y avoir quelques dérogations, mais l'important, c'est de respecter une logique visant à "faire-au-plus-lisible-sans-se-casser-la-tête-pour-autant".
(Et sans se dire "pourquoi je le ferai puisque lui ne le fait pas ?")
Bien sur qu'il faut aussi être indulgent, mais je trouve que l'effort vient toujours du même côté, c'est tout.
Au moins, chez Colibri, on comprend parfaitement ce qu'il écrit.
Et si ça te plaît pas: tu as toujours des "reformateurs" de code.
Voila tout est dit et puis tout le monde semble d'accord en plus.
***: j'ai encore pas compris comment un organisme pouvait se déclarer "de standardisation". Ca voudrait dire qu'il s'auto-proclame le droit de dire ce qu'il faut faire ou non... mais de quel droit, justement ?
Suffit de regarder le travail de l'ISO, remarquable mais contestable aussi.
Et puis l'OASIS, l'ECMA, alors ?
Sans compter ce fameux W3C qui, au lieu d'avancer le "standard" html, ralentit son développement.
Nan bref, standard est un mot qui n'a aucun sens. En aura-t-il un jour ?
[hs]Je vous rappelle que Microsoft était "standard" aussi, à une certaine époque, mais que ça décline, comme tout, car ça n'a aucun sens./hs