See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: [C++] Question de débutant sur les constantes  (Read 1709 times)

0 Members and 1 Guest are viewing this topic.

Offline Coussini

  • Legend
  • ******
  • Posts: 3161
  • Country: Canada ca
  • Karma: 28
18 July 2008, 16:52:45
J'essaye de me créer une constante define concernant le nombre de minutes dans 24 heures soit en deux versions:

(1) #define VINGT_QUATRE_HEURE 1440;
(2) #define VINGT_QUATRE_HEURE 1440


Je me suis rendu compte qu'en mettant un ';' à la fin de mon #define -> voir version (1), que le résultat de
mon calcul n'est pas vraiment le même

long minuteDebut = VINGT_QUATRE_HEURE - ((21 heures * 60 minutes ) + 45 minutes);

le résutat de minuteDebut selon la définition (1) sera : 1440 minutes
le résutat de minuteDebut selon la définition (2) sera : 135 minutes

(*) Ce qui est en rouge est simplement pour comprendre ce que représente les valeurs


CONCLUSION : Il est parfois dangereux de toujours mettre des ';' en C++, mais sachant que je suis débutant... je peux me permettre ces erreurs    :trucdeouf:



Message modifié ( 18-07-2008 16:54 )

Coussini "Maître des liens"



Que dieu vous éloigne du Covid-19

Offline no matter

  • Legend
  • ******
  • Posts: 2826
  • Karma: 1
Reply #1 - 18 July 2008, 17:16:00
Quote
Il est parfois dangereux de toujours mettre des ';' en C++, mais sachant que je suis débutant... je peux me
permettre ces erreurs
On apprend aussi ainsi ^^
Il ne faut pas mettre de ";" après un define.

Tu fais du C (pas du C++)?
const double cdVingtQuatreHeures = 1440;


------------

no matter.

Offline Coussini

  • Legend
  • ******
  • Posts: 3161
  • Country: Canada ca
  • Karma: 28
Reply #2 - 18 July 2008, 17:23:32
Effectivement.... je commence par apprendre le C puis je ferais le C++....

De toutes façons, j'utilise Visual Studio 2005 (la même version que j'utiliserais dans mon boulot) et j'utilise
des fichiers sources *.CPP.

Oui... des *.CPP

À force de suivre les cours du site du zéro -> http://www.siteduzero.com ,je m'aperçois que tout ce que je fais
en C est toujours compatible avec le C++ (SAUF AVEC CE QUI A TRAIT À L'ALLOCATION MEMOIRE)

Je vois un grand avantage à cela... car je devrais travailler dans des sources en C++ qui sont très vieux et il y a des
chances que je puisses voir des parties en C dedans....

De toutes manière... c'est très profitable... c'est que que j'en retient


:up: J'ai fais l'erreur, depuis que j'ai écrit les lignes ci-haut, de mettre un '=' dans un define comme
#define valeur = 90

cela génère une erreur de compilation très dure à trouver... car le compilateur ne semble pas vérifier les #define (OUF)



Message modifié ( 19-07-2008 02:38 )

Coussini "Maître des liens"



Que dieu vous éloigne du Covid-19

Offline laserpithium

  • Legend
  • ******
  • Posts: 1473
  • Karma: 0
Reply #3 - 19 July 2008, 11:11:30
Un define, c'est un truc trop bête pour avoir besoin de ";"
Quand tu écris define, le compilo fait un "copié coller" du nom de la variable et de ce qu'il y a après.

Si tu fais donc:
define VINGT_QUATRE_HEURES = 1440;
le compilo va mettre dans la variable VINGT_QUATRE_HEURES la donnée " = 1440;"
alors que toi tu veux juste "1440"



La sagesse me cours après, mais je suis plus rapide
Si Dieu existe, butons-le !

Offline Coussini

  • Legend
  • ******
  • Posts: 3161
  • Country: Canada ca
  • Karma: 28
Reply #4 - 19 July 2008, 14:59:57
HO ! Merci.... je comprend maintenant ;)


« Last Edit: 19 July 2008, 14:59:57 by Coussini »
Coussini "Maître des liens"



Que dieu vous éloigne du Covid-19