VARIABLE GLOBALE?

VARIABLE GLOBALE?

by Zhehao Li -
Number of replies: 3

Bonsoir,

En me renseignant sur l'écriture de c++ je suis tombé sur #define et j'ai vu qu'il est par exemple possible de faire :

  •  #define MAX 255 
avant la fonction main. Est-ce considéré comme une variable globale? Car dans le cas contraire ce serait très pratique de pouvoir l'utiliser, et on contournerait en même temps l'utilisation de vraies variables globales.

Merci d'avance pour votre réponse!


In reply to Zhehao Li

Re: VARIABLE GLOBALE?

by Jonathan Xiaocheng Wei -

Salut,

Je pense pas que tu puisses utiliser #define car ton MAX par exemple satisferait la définition d’une variable globale qui est qu’elle peut être utilisée n’importe où dans le programme. En l’occurrence, le MAX est de tout façon fourni dans le fichier d’entrée et devra être lu par ton programme, il faudrait alors faire un passage par référence pour pouvoir réutiliser MAX dans Le main ou dans une autre fonction.

In reply to Jonathan Xiaocheng Wei

Re: VARIABLE GLOBALE?

by Ronan Boulic -

le problème avec les variables globales c'est qu'elles sont variables.

Il n'y a aucun problème avec des constantes globales créées avec define ou constexpr.

In reply to Zhehao Li

Re: VARIABLE GLOBALE?

by Ronan Boulic -

MAX est un symbole créé avec une directive define : c'est une constante. C'est accepté.

les conventions de programmation du cours recommandent de créer ce genre de symbole pour remplacer les "magic numbers". L'alternative moderne (C++11) aux symboles créés avec #define est une constante créée avec constexpr. C'est aussi accepté car comme son nom l'indique il ne s'agit pas de variables.

PS: un bug de moodle fait que je ne reçois aucun des messages postés sur les forums ; j'ai signalé le problème et espère pouvoir être plus réactif prochainement