#define ou variable globale - C++ - Programmation
Marsh Posté le 14-09-2003 à 01:46:03
si tu fait un #define la nom de la variable sera remplace par sa valeur avant la compilation donc c comme si la variable nexistait pas , c juste pour avoir plus facile
par contre la var globale sera presente des le debut du programme, jusqua la fin et les variables globales c mal
Marsh Posté le 14-09-2003 à 02:05:26
tu peux utiliser des constantes du type
const type CONSTANTE;
pour remplacer les defines; l'avantage étant qu'elle sont gérées par le compilo lui même (et non le préprocesseur) et qu'elles "n'existent" pas à l'éxécution.
Marsh Posté le 14-09-2003 à 09:17:58
SchnapsMann a écrit : qu'elles "n'existent" pas à l'éxécution. |
???
t'as oublier de citer le typage.
oublier le préprocesseur, à posteriori, Stoustrup regrette d'avoir laisser le préprocesseur personnellement, je ne m'en sert jamais
Marsh Posté le 14-09-2003 à 10:12:13
SchnapsMann a écrit : tu peux utiliser des constantes du type |
Niveau performence dans une grosse boucle, quel est le mieux :
const type CONSTANTE ou #define ?
Marsh Posté le 14-09-2003 à 10:24:34
iS@mi a écrit : |
les performances sont les mêmes avec l'avantage qu'avec const, tu peux utiliser des objets, et le fais de les marquer const aide certains compilateurs. sinon pour des types intégrés, aucune différence
Marsh Posté le 14-09-2003 à 11:14:57
Taz a écrit : ??? |
Le préprocesseur peut etre tres pratique parfois... évidemment, il faut pas en abuser non plus. Les const, c'est pas pour faire joli!
Marsh Posté le 14-09-2003 à 15:30:42
La seule utilité flagrante du préprocesseur c'est ecrire des macros
de 'remplissage', style un bout de code avec un truc qui change ...
encore que, une peu de metaprog et zou !
Marsh Posté le 14-09-2003 à 15:32:20
Joel F a écrit : La seule utilité flagrante du préprocesseur c'est ecrire des macros |
pour faire du code multi plate forme, ça sert aussi le prépro.
Marsh Posté le 14-09-2003 à 17:22:14
SchnapsMann a écrit : |
Il y a d'autres moyens de le faire aussi.
Marsh Posté le 14-09-2003 à 17:23:39
vrai les
#define WIN32
#else LINUX
#endif
servent bien
Marsh Posté le 14-09-2003 à 17:39:55
Joel F a écrit : vrai les |
clair que quand ton code passe même pas le cpp, t'as aucun problème de portabilité
Marsh Posté le 14-09-2003 à 01:25:34
Salut,
je ne suis pas sûr de poser la question avec les bons termes, et encore moins si cette question se pose réellement, mais vaut-il mieux utiliser un #DEFINE VARIABLE VALEUR ou une variable globale?
Dans quels cas utiliser l'une plutôt que l'autre?
Merci d'avance...
---------------
Another .Net Blog