begin process at 2012 05 29 07:15:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

Global, grave ou pas ?


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

Global, grave ou pas ?

mardi 19 septembre 2006 à 02:34:17 | Global, grave ou pas ?

Ziman

Bonjour,

aujourd'hui, une de mes prof m'a dit que les programmeurs fuyaient les variables globales, mais une question m'est venue à l'esprit.

Imaginons que quand j'appuye sur un bouton, ça initialise un pointeur vers un tableau. Donc on clique sur le bouton et paf on a un tableau. Ensuite, si on clique sur un autre bouton, qui lui, doit effectuer des opérations sur le tableau. Comment je dois faire si je peux pas le déclarer en global ?

WndProc (ma procédure de traitement des message) se terminera après le premier click et lors du deuxième clique ben le tableau n'aura plus sa valeur, je me trompe ?

Je suis un peu paumé sur ce coup là, merci de m'indiquer le chemin :p

Apprendre le VB6
mardi 19 septembre 2006 à 09:35:54 | Re : Global, grave ou pas ?

BruNews

Administrateur CodeS-SourceS
A tes profs toujours répondre "bien sur vous avez toujours raison, etc...".

Ensuite la critique doit réagir (en silence): Aucun tabou ne doit prévaloir, l'informatique n'est ni une religion ni qlq autre obscurantisme. On fait selon le type de prog demandé et exigences du chef si c'est le cas (prof dans ton cas).

ciao...
BruNews, MVP VC++
mardi 19 septembre 2006 à 13:08:58 | Re : Global, grave ou pas ?

Ziman

Oui, je suis d'accord, mais ca ne répond pas à ma question. Les exigences du programmes sont apparemment de ne pas déclarer de variable globale en masse, mais le programme traitant un tableau de mot selon les actions de l'utilisateur, il faut bien que je le déclare global non ? En console je comprendrai que non mais en graphique, ai-je d'autre choix ?

Apprendre le VB6
mardi 19 septembre 2006 à 15:49:26 | Re : Global, grave ou pas ?

buno

Administrateur CodeS-SourceS
Bien sûr.
Tu peux le déclarer dans une classe et passer son pointeur à toutes les classes susceptibles de le modifier

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
mardi 19 septembre 2006 à 15:58:32 | Re : Global, grave ou pas ?

Ziman

Euh, c'est du classe, ca existe pas les classes en C si ?

Apprendre le VB6
mardi 19 septembre 2006 à 16:02:09 | Re : Global, grave ou pas ?

buno

Administrateur CodeS-SourceS
Réponse acceptée !
Pardon, pas pigé que tu étais en C. Là, effectivement, les variables globales s'imposent

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
mardi 19 septembre 2006 à 18:01:58 | Re : Global, grave ou pas ?

BruNews

Administrateur CodeS-SourceS
Elles ne s'imposent pas plus qu'en C++ si tu avais instancié une classe depuis le debut, tu pourrais tout autant faire une alloc sur un pointeur static à la wndproc de la fenetre mère et passer le pointeur à chaque fonction, serait tout simplement aussi inutile qu'une classe mais tout autant faisable. C'est clair qu'une declaration static équivaut à placer la variable au segment .data comme si était mis en variable globale, sera contre productif mais ça fait beau pour certains.

ciao...
BruNews, MVP VC++
mercredi 20 septembre 2006 à 00:45:17 | Re : Global, grave ou pas ?

Ziman

BruNews, toi, tu ferais comment ? Une classe static ou tu met des variables globales ? (Juste pour avoir l'avis le plus large possible, comme dirait mon prof de philo ... La vérité n'est que le point commun de l'accumulation du maximum de points de vue différents possibles)

Apprendre le VB6
mercredi 20 septembre 2006 à 00:56:41 | Re : Global, grave ou pas ?

BruNews

Administrateur CodeS-SourceS
Si tu es en C il n'y a pas de classe (et tant mieux, he he), ça règle le problème à la base.
Donc si C et pas en global:


LRESULT CALLBACK AppWndProc(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  static int stNbr;
  switch(mssg) {
    case WM_DESTROY:
      PostQuitMessage(0);
      return 0;
  }
  return DefWindowProc(hwnd, mssg, wParam, lParam);
}

Tu initialises si besoin stNbr dans WM_CREATE et modifies ensuite où tu veux, faudra par contre passer en param aux funcs devant accéder. Prof sera content, c'est déclaré local malgré que le compilo génèrera code strictement identique à global mais avec lenteur du passage de param en plus.

ciao...
BruNews, MVP VC++
mercredi 20 septembre 2006 à 21:43:49 | Re : Global, grave ou pas ?

Ziman

ah ben ué, c'est juste, une variable static. Ué mais c'est se gratter pour se faire rire. Je lui ai expliqué l'affaire et elle a dit qu'elle était d'accord pour les variables globales donc ca va.

Merci pour ces explications

Apprendre le VB6


Cette discussion est classée dans : bouton, tableau, clique, global, grave


Répondre à ce message

Sujets en rapport avec ce message

Timer !! comprend rien [ par malfroc ] Bonjour,je regarde les Timer sous visual C++. Je bosse en MFC, et voudrais appliqué un timer dès que l'on clique sur un bouton , et l'arreter lorqu'i Clique de souris apres xx milisecondes... [ par 33man ] Hmm j'aimerai faire un prog tout simple pas d interface graphique mais qui simule un clique de souris bouton gauche en bas et apres xx miliseconde le Simuler clique bouton [ par goutbouyo ] Salut,Avec spy++ j'ai récupérai le handle d'un bouton (d'un programme qui n'est pas de moi).Je voudrais simuler un clique sur ce bouton(pas forcément Intercepter Clique sur bouton [ par piep14 ] Je souhaite Intercepter Clique sur bouton. Mon but : l'utilisateur clique sur le bouton, sa valeur (son nom) change. Si on reclique desus. Ca reviens Dessiner dans un bouton [ par hadrien1 ] Bonsoir, Alors voila mon petit soucis : j'ai reussi à afficher une image dans un bouton, jusque la pas de problemes, j'ai afficher une ile dadans et Tableau tridimensionnel global [ par nisaloncaje ] bonjour dans mon programme j'aurais besoin d'utiliser un tableau à 3 dimensions (double tab[2][2][1433]) comme variable globale. Ainsi, dans les fichi surcharge pile, variable global [ par blinix123 ] Bonjour, J'ai un projet basique, des fonctions, des procedure, des talbeaux, des .c et des .h ! Je déclare un tableau int carte[][LARGEURPIXEL] dans l Comment faire pour qu'un bouton apparaisse enfoncé [ par flexx ] BonjourJe développe une petite appli avec VC++ 6 (je sais, c'est dépassé :), et je souhaite que lorsque je clique sur un bouton, celui-ci reste enfonc [Qt] Nouvelle fenêtre après clique sur bouton [ par ribery91720 ] Bonjour à tous,Tout d'abord je vous montre une capture de mon IHM :Je vous explique mon problème :Je voudrais que lorsque je clique sur le bouton s Dessiner dans un Tableau [ par thedebutant11 ] Bonjour,J'utilise actuellement Borland, et je voudrais savoir si quelqu'un à déja réussi à colorier dans un tableau (DrawGrid) dans la routine (càd qu


Nos sponsors


Sondage...

Comparez les prix

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,858 sec (4)

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