begin process at 2012 05 28 20:02:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

#define incremental


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

#define incremental

lundi 3 janvier 2005 à 14:31:30 | #define incremental

garslouche

Salut à tous,
je cherche à écrire une macro qui utiliserait un parmètre qui augmenterait à chaque utilisation. Par exemple si la macro s'appelle AUTO_INDENT

et que j'écris :
int i = AUTO_INDENT;
int j = AUTO_INDENT;

alors i =0 et j =1

et pour compliquer un peu je voudrais que ce nombre soit partagé par tous les fichiers qui incluent cette macro.

Je compte combiner cettre macro avec l'opérateur ## pour que le compilateur crée tout seul des variables numérotées. Par exemple :
int VAR = 100;
int VAR = 200;
et dans un autre fichier
int VAR = 300;

et que de lui-même il traduise ça en
int var0 = 100;
int var1 = 200;
et
int var2 = 300;


Au final peu importe l'ordre dans lequel la numérotation se fait.


Merci


On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
lundi 3 janvier 2005 à 21:10:13 | Re : #define incremental

Funto66

Wow, intéressant mais je doute que ça soit possible en restant dans du C/C++ standard...
Tu peux toujours te créer ton propre préprocesseur ;)

---------------------------------------------------------
Patience et longueur de temps font plus que force ni que rage....
Coucous flingueurs 3D : http://www.freewebs.com/cf3d/
lundi 3 janvier 2005 à 21:30:53 | Re : #define incremental

garslouche

Bah en fait je viens de repenser à un post que j'avais vu sur la meta-programmation. J'ai bon espoir de m'en sortir.
J'en ferai peut-être une source si je trouve. Ca peut être interessant non ? (quoique pas très réutilisable)

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
lundi 3 janvier 2005 à 22:40:20 | Re : #define incremental

plus_plus_fab

"... et pour compliquer un peu je voudrais que ce nombre soit partagé par tous les fichiers qui incluent cette macro."
Jusque la, ça va.
mais il faut bien se dire que le préprocesseur ne fait aucun calcul. Donc la solution est la variable globale static.
apres, pour demander à ce que le préprocesseur "resolve" VAR en var0, ce n'est pas possible puisque le calcul du 0 se fait à l'exécution, et entre le preprocesseur et l'execution, il y a la compilation ...

Les templates C++ n'apporteront rien non plus amha. On peut souvent résoudre des calculs à la compilation avec les templates, et meme si le calcul du 0 est résolu à la compilation (et non à l'execution), c'est encore trop tard.
En fait le 0 doit etre connu avant la compilation, donc ni pendant, ni apres.

comme le dis Funto, Il faut que tu t'écrives un petit préprocesseur de texte : progamme qui analyserai ton code et transformerai les VAR en var0...


Cette discussion est classée dans : macro, int, var, auto, define


Répondre à ce message

Sujets en rapport avec ce message

Implémentation logicielle (2) [ par new0staff ] J'ai déjà posé une question hier concernant ce sujet et je suis bloqué en ce moment au niveau du fichier géneré par le logiciel de modelisation Estere gestion de memoire [ par gyzmo1 ] Salut à tous, j ai un problème de fuite de mémoire, minime mais suffisamment important pour faire planter mon programme lorsque celui ci tourne des he URGENT:Problème de communication série. [ par lambrosx ] Bonjour, j'ai un soucis plutot embetant. J'ai un programme de communication série, dont j'ai trouvé des codes sources sur ce site. Je l'ai modifié, et Usage des MACRO [ par wizzo ] Salut a tous.Je relance la discussion eternelle sur l'usage des macro.En theorie, elles sont à proscrire car n'ayant aucune idée des scopes/portées de plus court chement avec le cout [ par developvbdebut ] Bonsoir tout le mondeJ'ai un probleme avec l'algo du plus cours chemin, je ne vois pas comment mis prendre. De plus, je dois affichier la distance e Que fait ce #define ? [ par AsM0DeUz ] Bonjour,Je suis en train d'essayer de comprendre un code mais je coince sur ceci :Dans le code ci-dessous, que fait le #define PROFILE(x) ? un define [Define / MACRO] Est-ce possible de faire cela ? [ par Ilsundal ] Bonjour a tous, Mon problème est le suivant : je souhaiterais savoir s'il était possible de remplacer la ligne suivante : IObject *myobj; //IObjec #define VS const [ par jadoud ] bjr, SVP si vous peuvez me aider et me dire la difference entre #define var_st et const var_st merci Macro et template [ par mezaya ] Bonjour à tous,j'ai un problème avec le préprocesseur c et l'utilisation de template.je n'arrive pas à résoudre le problème suivant :j'ai une macro :# Aide, résolution d'un taquin [ par Micha1177 ] Bonjour, Dans le cadre d'un projet, je doit élaborer une grille de taquin résoluble, et pouvoir effectuer le déplacement des cases, et ensuite concev


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales