int nbre_boutons_joueurs = Box_Joueurs->ControlCount;
qui me donne le nombre de boutons dans un contrôle.
Or, pendant toute l'utilisation du programme, ce nombre ne change pas...
La fonction qui utilise ce membre est appellé assez souvent, et je me
demandais s'il était judicieux (ou bien si c'est comme ça qu'on fait) de
mettre ce membre static, de telle sorte qu'il ne soit calculé qu'une seule
fois lors du premier appel à la fonction...
Uh ? Une variable peut être membre d'une classe, mais pas d'une fonction, si je ne m'abuse :-/
int nbre_boutons_joueurs = Box_Joueurs->ControlCount;
La fonction qui utilise ce membre est appellé assez souvent, et je me demandais s'il était judicieux (ou bien si c'est comme ça qu'on fait) de mettre ce membre static, de telle sorte qu'il ne soit calculé qu'une seule fois lors du premier appel à la fonction...
Bof... Il n'y a pas de calcul à proprement parler, il n'y a qu'une indirection (le "Box_Joueurs->") et l'affectation d'un entier. AMHA, ça ne vaut pas le coup.
Mais bon, il est quasiment impossible de savoir a priori ce qu'une tentative d'optimisation donnera en termes d'optimisation réelle. Donc, écris ton programme avec une sémantique qui reflète ce que tu cherches à faire (par exemple, ne mettre "static" que si ça a un sens réel), sans te préoccuper d'optimiser. L'optimisation ne vient qu'après lecture des résultats du profiler, i.e. une fois que ton programme a été compilé.
-- schtroumpf schtroumpf Jean-Emile de France
On 06 Jul 2004 22:31:06 GMT, "Michaël Delva"
<michael_delva@i_cant_remember.com>:
j'ai une fonction dans laquelle j'ai ce membre:
Uh ? Une variable peut être membre d'une classe, mais pas d'une
fonction, si je ne m'abuse :-/
int nbre_boutons_joueurs = Box_Joueurs->ControlCount;
La fonction qui utilise ce membre est appellé assez souvent, et je me
demandais s'il était judicieux (ou bien si c'est comme ça qu'on fait) de
mettre ce membre static, de telle sorte qu'il ne soit calculé qu'une seule
fois lors du premier appel à la fonction...
Bof... Il n'y a pas de calcul à proprement parler, il n'y a qu'une
indirection (le "Box_Joueurs->") et l'affectation d'un entier. AMHA,
ça ne vaut pas le coup.
Mais bon, il est quasiment impossible de savoir a priori ce qu'une
tentative d'optimisation donnera en termes d'optimisation réelle.
Donc, écris ton programme avec une sémantique qui reflète ce que tu
cherches à faire (par exemple, ne mettre "static" que si ça a un sens
réel), sans te préoccuper d'optimiser. L'optimisation ne vient
qu'après lecture des résultats du profiler, i.e. une fois que ton
programme a été compilé.
Uh ? Une variable peut être membre d'une classe, mais pas d'une fonction, si je ne m'abuse :-/
int nbre_boutons_joueurs = Box_Joueurs->ControlCount;
La fonction qui utilise ce membre est appellé assez souvent, et je me demandais s'il était judicieux (ou bien si c'est comme ça qu'on fait) de mettre ce membre static, de telle sorte qu'il ne soit calculé qu'une seule fois lors du premier appel à la fonction...
Bof... Il n'y a pas de calcul à proprement parler, il n'y a qu'une indirection (le "Box_Joueurs->") et l'affectation d'un entier. AMHA, ça ne vaut pas le coup.
Mais bon, il est quasiment impossible de savoir a priori ce qu'une tentative d'optimisation donnera en termes d'optimisation réelle. Donc, écris ton programme avec une sémantique qui reflète ce que tu cherches à faire (par exemple, ne mettre "static" que si ça a un sens réel), sans te préoccuper d'optimiser. L'optimisation ne vient qu'après lecture des résultats du profiler, i.e. une fois que ton programme a été compilé.
-- schtroumpf schtroumpf Jean-Emile de France
Michaël Delva
Uh ? Une variable peut être membre d'une classe, mais pas d'une fonction, si je ne m'abuse :-/
Encore et toujours ces problèmes de vocabulaire... ;-) C'est dur quand on ne vient pas d'une filière info d'employer tous les termes corrects!
Bof... Il n'y a pas de calcul à proprement parler, il n'y a qu'une indirection (le "Box_Joueurs->") et l'affectation d'un entier. AMHA, ça ne vaut pas le coup.
Mais bon, il est quasiment impossible de savoir a priori ce qu'une tentative d'optimisation donnera en termes d'optimisation réelle. Donc, écris ton programme avec une sémantique qui reflète ce que tu cherches à faire (par exemple, ne mettre "static" que si ça a un sens réel), sans te préoccuper d'optimiser. L'optimisation ne vient qu'après lecture des résultats du profiler, i.e. une fois que ton programme a été compilé.
Disons que ce n'est pas par souci d'optimisation, mais par souci de coder "propre". Il me semblait que c'était intéressant de faire comme ça... Ou du moins comme ça qu'il faille faire...
Merci de ta réponse!
Uh ? Une variable peut être membre d'une classe, mais pas d'une
fonction, si je ne m'abuse :-/
Encore et toujours ces problèmes de vocabulaire... ;-) C'est dur quand on
ne vient pas d'une filière info d'employer tous les termes corrects!
Bof... Il n'y a pas de calcul à proprement parler, il n'y a qu'une
indirection (le "Box_Joueurs->") et l'affectation d'un entier. AMHA,
ça ne vaut pas le coup.
Mais bon, il est quasiment impossible de savoir a priori ce qu'une
tentative d'optimisation donnera en termes d'optimisation réelle.
Donc, écris ton programme avec une sémantique qui reflète ce que tu
cherches à faire (par exemple, ne mettre "static" que si ça a un sens
réel), sans te préoccuper d'optimiser. L'optimisation ne vient
qu'après lecture des résultats du profiler, i.e. une fois que ton
programme a été compilé.
Disons que ce n'est pas par souci d'optimisation, mais par souci de coder
"propre". Il me semblait que c'était intéressant de faire comme ça... Ou du
moins comme ça qu'il faille faire...
Uh ? Une variable peut être membre d'une classe, mais pas d'une fonction, si je ne m'abuse :-/
Encore et toujours ces problèmes de vocabulaire... ;-) C'est dur quand on ne vient pas d'une filière info d'employer tous les termes corrects!
Bof... Il n'y a pas de calcul à proprement parler, il n'y a qu'une indirection (le "Box_Joueurs->") et l'affectation d'un entier. AMHA, ça ne vaut pas le coup.
Mais bon, il est quasiment impossible de savoir a priori ce qu'une tentative d'optimisation donnera en termes d'optimisation réelle. Donc, écris ton programme avec une sémantique qui reflète ce que tu cherches à faire (par exemple, ne mettre "static" que si ça a un sens réel), sans te préoccuper d'optimiser. L'optimisation ne vient qu'après lecture des résultats du profiler, i.e. une fois que ton programme a été compilé.
Disons que ce n'est pas par souci d'optimisation, mais par souci de coder "propre". Il me semblait que c'était intéressant de faire comme ça... Ou du moins comme ça qu'il faille faire...
Merci de ta réponse!
Alain Naigeon
"Michaël Delva" a écrit dans le message news:
Disons que ce n'est pas par souci d'optimisation, mais par souci de coder "propre". Il me semblait que c'était intéressant de faire comme ça... Ou du
moins comme ça qu'il faille faire...
Je mets mon grain de sel, sous la surveillance de Fabien : si c'est dans la nature de cette donnée d'être unique pour tous les objets de la classe, alors, oui, il me semble que la clarté conceptuelle y gagne beaucoup si tu en faits un membre static - AMHA ce serait même le cas si c'était plus long ;) (et de toute façon on parle là de durées totalement sans impact pratique)
--
Français *==> "Musique renaissance" <==* English midi - facsimiles - ligatures - mensuration http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/ Alain Naigeon - - Strasbourg, France
"Michaël Delva" <michael_delva@i_cant_remember.com> a écrit dans le message
news: Xns951F12C72BDE1zoubidamanhotmailcom@212.27.42.69...
Disons que ce n'est pas par souci d'optimisation, mais par souci de coder
"propre". Il me semblait que c'était intéressant de faire comme ça... Ou
du
moins comme ça qu'il faille faire...
Je mets mon grain de sel, sous la surveillance de Fabien : si c'est dans la
nature de cette donnée d'être unique pour tous les objets de la classe,
alors, oui, il me semble que la clarté conceptuelle y gagne beaucoup
si tu en faits un membre static - AMHA ce serait même le cas si c'était
plus long ;) (et de toute façon on parle là de durées totalement sans
impact pratique)
--
Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - anaigeon@free.fr - Strasbourg, France
Disons que ce n'est pas par souci d'optimisation, mais par souci de coder "propre". Il me semblait que c'était intéressant de faire comme ça... Ou du
moins comme ça qu'il faille faire...
Je mets mon grain de sel, sous la surveillance de Fabien : si c'est dans la nature de cette donnée d'être unique pour tous les objets de la classe, alors, oui, il me semble que la clarté conceptuelle y gagne beaucoup si tu en faits un membre static - AMHA ce serait même le cas si c'était plus long ;) (et de toute façon on parle là de durées totalement sans impact pratique)
--
Français *==> "Musique renaissance" <==* English midi - facsimiles - ligatures - mensuration http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/ Alain Naigeon - - Strasbourg, France
Fabien LE LEZ
On 06 Jul 2004 23:50:39 GMT, "Michaël Delva" :
Uh ? Une variable peut être membre d'une classe, mais pas d'une fonction, si je ne m'abuse :-/
Encore et toujours ces problèmes de vocabulaire... ;-) C'est dur quand on ne vient pas d'une filière info d'employer tous les termes corrects!
Bof... Je n'ai jamais eu de problèmes avec ça (sauf parfois dans les histoires de francisation de mots), et pourtant je viens d'une filière "maths pures".
-- schtroumpf schtroumpf Jean-Emile de France
On 06 Jul 2004 23:50:39 GMT, "Michaël Delva"
<michael_delva@i_cant_remember.com>:
Uh ? Une variable peut être membre d'une classe, mais pas d'une
fonction, si je ne m'abuse :-/
Encore et toujours ces problèmes de vocabulaire... ;-) C'est dur quand on
ne vient pas d'une filière info d'employer tous les termes corrects!
Bof... Je n'ai jamais eu de problèmes avec ça (sauf parfois dans les
histoires de francisation de mots), et pourtant je viens d'une filière
"maths pures".
Uh ? Une variable peut être membre d'une classe, mais pas d'une fonction, si je ne m'abuse :-/
Encore et toujours ces problèmes de vocabulaire... ;-) C'est dur quand on ne vient pas d'une filière info d'employer tous les termes corrects!
Bof... Je n'ai jamais eu de problèmes avec ça (sauf parfois dans les histoires de francisation de mots), et pourtant je viens d'une filière "maths pures".
-- schtroumpf schtroumpf Jean-Emile de France
Fabien LE LEZ
On Wed, 7 Jul 2004 01:57:43 +0200, "Alain Naigeon" :
si c'est dans la nature de cette donnée d'être unique pour tous les objets de la classe,
... et s'il s'agit bien d'un membre d'une classe (ce que je n'ai pas vraiment saisi dans le message original).
Reprenons la ligne d'origine :
int nbre_boutons_joueurs = Box_Joueurs->ControlCount;
Sans indications supplémentaires, je supposerai le cas qui me paraît canonique, i.e. cette ligne fait partie d'une fonction libre.
Déjà, un premier truc bizarre : on accède directement à une variable membre d'un objet -- membre non statique apparemment puisqu'on y accède via une instance de la classe.
Ensuite, il faut reconnaître qu'on manque cruellement de données : d'où sort ce "Box_Joueurs" ?
A première vue, je dirais que si "Box_Joueurs" est un pointeur static sur un objet const, i.e. est déclaré static ClasseQuelconque const *Box_Joueurs; ou si "ControlCount" est un membre static const de la classe dont "Box_Joueurs" est une instance, alors "nbre_boutons_joueurs" peut être static const. Dans le cas contraire, en particulier si "Box_Joueurs" est un paramètre de la fonction en question, déclarer "nbre_boutons_joueurs" static me semble une mauvaise idée. Et je ne vois pas de cas où "nbre_boutons_joueurs" peut être déclaré static non-const.
-- schtroumpf schtroumpf Jean-Emile de France
On Wed, 7 Jul 2004 01:57:43 +0200, "Alain Naigeon" <anaigeon@free.fr>:
si c'est dans la
nature de cette donnée d'être unique pour tous les objets de la classe,
... et s'il s'agit bien d'un membre d'une classe (ce que je n'ai pas
vraiment saisi dans le message original).
Reprenons la ligne d'origine :
int nbre_boutons_joueurs = Box_Joueurs->ControlCount;
Sans indications supplémentaires, je supposerai le cas qui me paraît
canonique, i.e. cette ligne fait partie d'une fonction libre.
Déjà, un premier truc bizarre : on accède directement à une variable
membre d'un objet -- membre non statique apparemment puisqu'on y
accède via une instance de la classe.
Ensuite, il faut reconnaître qu'on manque cruellement de données :
d'où sort ce "Box_Joueurs" ?
A première vue, je dirais que si "Box_Joueurs" est un pointeur static
sur un objet const, i.e. est déclaré
static ClasseQuelconque const *Box_Joueurs;
ou si "ControlCount" est un membre static const de la classe dont
"Box_Joueurs" est une instance, alors "nbre_boutons_joueurs" peut être
static const.
Dans le cas contraire, en particulier si "Box_Joueurs" est un
paramètre de la fonction en question, déclarer "nbre_boutons_joueurs"
static me semble une mauvaise idée.
Et je ne vois pas de cas où "nbre_boutons_joueurs" peut être déclaré
static non-const.
On Wed, 7 Jul 2004 01:57:43 +0200, "Alain Naigeon" :
si c'est dans la nature de cette donnée d'être unique pour tous les objets de la classe,
... et s'il s'agit bien d'un membre d'une classe (ce que je n'ai pas vraiment saisi dans le message original).
Reprenons la ligne d'origine :
int nbre_boutons_joueurs = Box_Joueurs->ControlCount;
Sans indications supplémentaires, je supposerai le cas qui me paraît canonique, i.e. cette ligne fait partie d'une fonction libre.
Déjà, un premier truc bizarre : on accède directement à une variable membre d'un objet -- membre non statique apparemment puisqu'on y accède via une instance de la classe.
Ensuite, il faut reconnaître qu'on manque cruellement de données : d'où sort ce "Box_Joueurs" ?
A première vue, je dirais que si "Box_Joueurs" est un pointeur static sur un objet const, i.e. est déclaré static ClasseQuelconque const *Box_Joueurs; ou si "ControlCount" est un membre static const de la classe dont "Box_Joueurs" est une instance, alors "nbre_boutons_joueurs" peut être static const. Dans le cas contraire, en particulier si "Box_Joueurs" est un paramètre de la fonction en question, déclarer "nbre_boutons_joueurs" static me semble une mauvaise idée. Et je ne vois pas de cas où "nbre_boutons_joueurs" peut être déclaré static non-const.
-- schtroumpf schtroumpf Jean-Emile de France
Michaël Delva
Bof... Je n'ai jamais eu de problèmes avec ça (sauf parfois dans les histoires de francisation de mots), et pourtant je viens d'une filière "maths pures".
Il me reste plus qu'à faire un gros effort là dessus alors... ;-)
Bof... Je n'ai jamais eu de problèmes avec ça (sauf parfois dans les
histoires de francisation de mots), et pourtant je viens d'une filière
"maths pures".
Il me reste plus qu'à faire un gros effort là dessus alors... ;-)
Bof... Je n'ai jamais eu de problèmes avec ça (sauf parfois dans les histoires de francisation de mots), et pourtant je viens d'une filière "maths pures".
Il me reste plus qu'à faire un gros effort là dessus alors... ;-)
Michaël Delva
Fabien LE LEZ wrote in news::
On Wed, 7 Jul 2004 01:57:43 +0200, "Alain Naigeon" :
si c'est dans la nature de cette donnée d'être unique pour tous les objets de la classe,
... et s'il s'agit bien d'un membre d'une classe (ce que je n'ai pas vraiment saisi dans le message original).
En fait Box_Joueurs est un GroupBox appartenant à une fenêtre Windows, représentée par une classe dans Builder 6 (TSaveData)
Et ControlCount renvoie le nombre de contrôles contenus par ce GroupBox.
for (int i=0; i < nbre_boutons_joueurs; i++) .... }
Alexandre
bonjour,
En fait Box_Joueurs est un GroupBox appartenant à une fenêtre Windows, représentée par une classe dans Builder 6 (TSaveData)
Et ControlCount renvoie le nombre de contrôles contenus par ce GroupBox.
je ne vois pas vraiment l'interet que la variable soit static. En fait je ne vois pas non plus l'interet de cette variable... éviter d'écrire Box_Joueurs->ControlCount ? AMA tu laisses comme c'est .
for (int i=0; i < nbre_boutons_joueurs; i++) .... }
bonjour,
En fait Box_Joueurs est un GroupBox appartenant à une fenêtre Windows,
représentée par une classe dans Builder 6 (TSaveData)
Et ControlCount renvoie le nombre de contrôles contenus par ce GroupBox.
je ne vois pas vraiment l'interet que la variable soit static.
En fait je ne vois pas non plus l'interet de cette variable... éviter
d'écrire Box_Joueurs->ControlCount ?
AMA tu laisses comme c'est .
En fait Box_Joueurs est un GroupBox appartenant à une fenêtre Windows, représentée par une classe dans Builder 6 (TSaveData)
Et ControlCount renvoie le nombre de contrôles contenus par ce GroupBox.
je ne vois pas vraiment l'interet que la variable soit static. En fait je ne vois pas non plus l'interet de cette variable... éviter d'écrire Box_Joueurs->ControlCount ? AMA tu laisses comme c'est .