|
Page : 1 2 Page Précédente | |
Auteur | Sujet : question de memoire |
Publicité | Posté le 25-07-2005 à 19:23:12 |
Taz bisounours-codeur | const sans hésiter :
|
slash33 | Une macro (le #define) n'est qu'une chaîne de caractères qui sera remplacée à chaque occurence dans ton code. Donc en terme d'occupation mémoire nada! Par contre, impossible de debogguer (aucune existence physique) et non typé. Quand on fait du C++, il FAUT abandonner le #define du C (sauf flags de compilation ou pour des usages particuliers). Je te recommande "Effective C++" de Scott Meyers pour connaître les bons trucs pour programmer en C++. |
theshockwave I work at a firm named Koslow |
|
Taz bisounours-codeur | on parle de mode debug hein
Message édité par Taz le 27-07-2005 à 19:24:36 |
blastman just me ! | (C++) always const for me
Message édité par blastman le 27-07-2005 à 21:08:53 --------------- http://www.blastmanu.info |
slash33 |
Message édité par slash33 le 28-07-2005 à 09:14:04 |
theshockwave I work at a firm named Koslow | Si je ne m'abuse, ca se retrouve dans le segment de données du programme (.text, non ?) et lorsqu'on fait un #define sur une chaine, par exemple, pour chaque objet (.o) compilé ayant le #define, on aura une occurrence de ladite chaine dans le code produit, alors qu'avec un extern const, la chaine ne s'y trouvera évidemment qu'une fois. Je suis d'accord sur le fait que ca n'encombre pas les zones de mémoire qu'on utilise pour les variables, mais les données en question se retrouvent bien chargées en mémoire à terme et y occuppent toujours de la place. |
Taz bisounours-codeur | tu penses bien que les chaines sont unifiées et que t'en as pas 36 copies hein |
theshockwave I work at a firm named Koslow | j'ai vérifié avant de faire ca, tu mets ton #define dans un .h et deux fichiers C qui l'incluent, et avec gcc (enfin, mingw pour mes tests) on se retrouve avec la chaine en double dans l'exe ...
Message édité par theshockwave le 28-07-2005 à 10:26:20 |
Publicité | Posté le 28-07-2005 à 10:25:29 |
slash33 | Exact theShOckKwAvE (t'a pas un nom plus simple?). Au final le #define prend certainement plus de place... sur le disque, en mémoire je ne suis vraiment pas sûr.
Message édité par slash33 le 28-07-2005 à 13:51:11 |
Rits75 to?be:!be | le #define remplace l'expression dans le code avant la compilation (preprocesseur)!
Message édité par Rits75 le 28-07-2005 à 14:50:38 |
Taz bisounours-codeur |
|
theshockwave I work at a firm named Koslow | j'ai précisé que c'était mingw, et j'ai fait ca sur un exemple assez simple :
|
Taz bisounours-codeur | et qu'est-ce qui te dit que la chaine est 2x présente dans le binaire ? |
slash33 |
Message édité par slash33 le 28-07-2005 à 17:29:55 |
theshockwave I work at a firm named Koslow | éditeur hexa
|
Kristoph |
|
Taz bisounours-codeur |
|
theshockwave I work at a firm named Koslow | toujours est-il que, même pour du C, je préfère éviter les #define et mettre des extern aux endroits appropriés. Sinon, ma version de minGW est assez récente (date d'un mois ou deux) donc j'imagine que cette fonctionnalité du compilo (rassembler les lignes identiques) n'est toujours pas activée par défaut
Message édité par theshockwave le 28-07-2005 à 17:40:34 |
slash33 | Remarquez que les macros ont des applications contre le piratage plutôt intéressantes. |
Joel F Real men use unique_ptr | -fstring-no-duplciate pour gcc < 3.4.4 |
blastman just me ! | d'facon l'informatique ca sux surtout la programmation et surtout le C++ Message édité par blastman le 28-07-2005 à 20:59:37 --------------- http://www.blastmanu.info |
adm1n1s7ra7eur |
|
Kristoph |
|
Taz bisounours-codeur | ben ça le fait par défaut chez moi en O2 Message édité par Taz le 29-07-2005 à 00:24:59 |
theshockwave I work at a firm named Koslow |
|
blackgoddess vive le troll ! |
--------------- -( BlackGoddess )- |
Joel F Real men use unique_ptr |
|
adm1n1s7ra7eur |
--------------- n'editez pas !!! |
slash33 |
Message édité par slash33 le 29-07-2005 à 16:32:27 |
Joel F Real men use unique_ptr | adm1n1s7ra7eur : je crosi que sur ce poitn tu n'as rien à m'apprendre ... et bon developpez.com 'na jamasi été un site de reference vraiment correct ... |
adm1n1s7ra7eur |
--------------- n'editez pas !!! |
adm1n1s7ra7eur |
--------------- n'editez pas !!! |
Joel F Real men use unique_ptr | oui ...
Message édité par Joel F le 29-07-2005 à 16:36:40 |
slash33 | FANTASTIQUE! Monsieur veut m'apprendre comment le précompilateur traite les MACROS C.
|
theshockwave I work at a firm named Koslow |
slash33 | Oui une macro pose exactement le même problème, le code est duppliqué à chaque occurence. Enfin apparement ça peut se régler sur certains compilos. |
++fab victime du syndrome IH | En plus, le compilateur n'est pas tenu d'honorer l'inlining s'il trouve ça pénalisant (surtout pour les architectures "pauvres" en registres).
|
adm1n1s7ra7eur | --------------- n'editez pas !!! |
Publicité | Posté le |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
[Access] 2 petites question sur les formulaires | Question bête sur unset |
Question sur la gestion mémoire | [ question aux gurus sql ] est ce faisable algorithmiquement en sql ? |
vbs et html question (a priori) | débordement de la mémoire |
[java] Question de gros noob sur l'allocation mémoire. | Question sur la memoire |
re post: Question carte a memoire... | Question carte à mémoire.... |
Plus de sujets relatifs à : question de memoire |