Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

#define Vs Const

8 réponses
Avatar
bruckner.olivier
Bonjour !

Je souhaites avoir un petit éclairsissement concernant la directive #define.

En effet je me demande si il est préférable (et judicieux !) d'utiliser
cette écriture :

const int MAXIMUM = 50;

plutôt que :

#define MAXIMUM 50

Existe t'il des cas nécessitant impérativement l'utilisation de #define
en C++ ?

Merci de vos réponses.

Olivier.

8 réponses

Avatar
Fabien LE LEZ
On Sun, 06 Jun 2004 16:11:23 +0200, ""
wrote:

Je souhaites avoir un petit éclairsissement concernant la directive #define.


Bon, là y'a franchement de l'abus.
Il faut tenter de rechercher un petit peu dans les archives avant de
poser un question qui revient tous les deux jours, merde !

On a évoqué le problème il y a à peine quelques jours dans le thread
"template et #define".

Je t'invite à lire les documents présents dans le forum fr.bienvenue,
et quelques-uns des documents présents dans fr.usenet.reponses, ainsi
que <http://www.aminautes.org/forums/serveurs/tablefr.html> et
<http://www.google.com/advanced_group_search?hl=fr>.

Accessoirement, lis aussi
<http://www.giromini.org/usenet-fr/repondre.html>, ça ne peut pas
faire de mal.


--
;-)
FLL, Epagneul Breton

Avatar
bruckner.olivier
Fabien LE LEZ wrote:
On Sun, 06 Jun 2004 16:11:23 +0200, ""
wrote:


Je souhaites avoir un petit éclairsissement concernant la directive #define.



Bon, là y'a franchement de l'abus.
Il faut tenter de rechercher un petit peu dans les archives avant de
poser un question qui revient tous les deux jours, merde !

On a évoqué le problème il y a à peine quelques jours dans le thread
"template et #define".

Je t'invite à lire les documents présents dans le forum fr.bienvenue,
et quelques-uns des documents présents dans fr.usenet.reponses, ainsi
que <http://www.aminautes.org/forums/serveurs/tablefr.html> et
<http://www.google.com/advanced_group_search?hl=fr>.

Accessoirement, lis aussi
<http://www.giromini.org/usenet-fr/repondre.html>, ça ne peut pas
faire de mal.




Merci Fabien.


Avatar
Martinez Jerome
Fabien LE LEZ wrote:

On Sun, 06 Jun 2004 16:11:23 +0200, ""
wrote:


Je souhaites avoir un petit éclairsissement concernant la directive #define.



Bon, là y'a franchement de l'abus.
Il faut tenter de rechercher un petit peu dans les archives avant de
poser un question qui revient tous les deux jours, merde !

On a évoqué le problème il y a à peine quelques jours dans le thread
"template et #define".


un "newbee" aura du mal a voir le rapport entre "template et #define",
et "const ou #define".
Perso, j'aurai vraiment pas regardé ce thread...


Avatar
Fabien LE LEZ
On Mon, 07 Jun 2004 11:55:29 +0200, Martinez Jerome
wrote:

un "newbee" aura du mal a voir le rapport entre "template et #define",
et "const ou #define".


Mais une simple recherche dans Google sur "const" et "#define" renvoie
pléthore de threads sur le sujet.

--
;-)
FLL, Epagneul Breton

Avatar
bruckner.olivier
Fabien LE LEZ wrote:
On Mon, 07 Jun 2004 11:55:29 +0200, Martinez Jerome
wrote:


un "newbee" aura du mal a voir le rapport entre "template et #define",
et "const ou #define".



Mais une simple recherche dans Google sur "const" et "#define" renvoie
pléthore de threads sur le sujet.



Bonjour,

Je suis tout à fait d'accord, mais si je pose ma question, c'est après
de longues recherches, je possede plusieurs ouvrages relatifs au C et
C++, mais peut etre les mauvais.

Il est vrai que pour moi "template et #define" ne m'a même pas mis la
puce à l'oreille.


Avatar
Fabien LE LEZ
On Mon, 07 Jun 2004 16:19:38 +0200, ""
wrote:

Je suis tout à fait d'accord, mais si je pose ma question, c'est après
de longues recherches


C'est bizarre, ça. Je viens de faire l'expérience : j'ai tapé "const
#define" dans Google (news), avec comme forum fr.comp.lang.c++[1] ; la
première réponse est le présent thread ; la seconde réponse[2] pointe
vers un message qui donne déjà pas mal d'informations. La troisième
réponse est le thread "template et #define" dont j'ai déjà parlé.
Temps total : environ 1 minute.

[1]
<http://www.google.com/groups?as_q=const%20et%20%23define&safe=images&ie=UTF-8&as_ugroup=fr.comp.lang.c%2b%2b&lr=&hl=en>
[2]
<http://www.google.com/groups?q=const+et+%23define+group:fr.comp.lang.c%2B%2B&hl=en&lr=&ie=UTF-8&selm=MqbE9.2585%24_%251.56427%40wagner.videotron.net&rnum=2>

je possede plusieurs ouvrages relatifs au C et
C++, mais peut etre les mauvais.


S'ils mélangent C et C++, ils sont très vraisemblablement mauvais.
Si c'est toi qui mélange C et C++, tu cherches des problèmes. Il doit
être possible d'apprendre le C et le Basic en même temps, car les deux
langages ont des syntaxes assez différentes pour qu'on ne mélange pas
tout.
C'est différent pour le C et le C++ : certains éléments de syntaxe
sont les mêmes, masquant le fait que ce sont deux langages
fondamentalement différents. Du coup, si tu essaies d'apprendre le C
et le C++ en même temps, abandonne et fais un choix ; si tu connais le
C et que tu tentes d'apprendre le C++, efforce-toi d'oublier le C.

--
;-)
FLL, Epagneul Breton

Avatar
Godot
"Fabien LE LEZ" a écrit dans le message de
news:

| C'est bizarre, ça. Je viens de faire l'expérience : j'ai tapé "const
| #define" dans Google (news), avec comme forum fr.comp.lang.c++[1] ; la
| première réponse est le présent thread ; la seconde réponse[2] pointe
| vers un message qui donne déjà pas mal d'informations. La troisième
| réponse est le thread "template et #define" dont j'ai déjà parlé.
| Temps total : environ 1 minute.

Ceci est une solution en O(n). Il est bien connu que les programmeurs C++
aiment bien ce qui est performant.
Une question directe peut se faire en O(1) si on sait amadouer le
tempérament râleur des gardiens du temple, mais il est vrai que la
complexité peut vite devenir exponentielle aussi.
Avatar
Fabien LE LEZ
On Tue, 8 Jun 2004 05:28:32 +0200, "Godot" wrote:

Une question directe peut se faire en O(1)


Yep, pour éviter de perdre son temps à travailler, il vaut mieux
convaincre quelqu'un d'autre de faire son travail à sa place.

--
;-)
FLL, Epagneul Breton