Qqs questions ( C++ inside )

Qqs questions ( C++ inside ) - Programmation

Marsh Posté le 25-03-2001 à 18:55:12    

Est-ce que qqn pourrait me rappeler la différence entre une variable static et const.
const je sais ce ke c'est, mais static pas trop :/
Sinon a quoi servent les fonctions callback ?
Merchiiii
++

Reply

Marsh Posté le 25-03-2001 à 18:55:12   

Reply

Marsh Posté le 25-03-2001 à 19:06:22    

une variable déclarée static ne peut pas être utilisée en dehors du fichier où elle est déclarée.
 
Pour les fonctions callback, j'en utilise en openGL mais je ne saurais pas t'expliquer ce que c'est  exactement.


---------------
http://www.chadenat.forez.com
Reply

Marsh Posté le 25-03-2001 à 19:08:53    

Ok merci...
Sinon tu as un bon titre de livre sur le C++ sous windows, assez avancé, mais pas forcément sur le visual c++ (de la m***e) :)
+

 

[edit]--Message édité par clent--[/edit]

Reply

Marsh Posté le 25-03-2001 à 19:31:13    

En c++ un membre (donnée ou fonction) d'une classe peut aussi être "static". Dans le cas d'une donnée, elle est alors partagée par toutes les instances de la classe.

Reply

Marsh Posté le 25-03-2001 à 20:46:07    

...et on appelle cela une variable de classe


---------------
http://www.chadenat.forez.com
Reply

Marsh Posté le 26-03-2001 à 01:12:16    

dans le source de VC++ le terme CALLBACK placé devant une fonction remplace le terme __stdcall  
(si tu mets __stdcall ou __cdecl devant ta fonction , elle ne gérera pas de la meme facon les parametres de la fonction. C'est au niveau de la libération de la mémoire que ca se passe mais je ne connais pas exactement le mecanisme.Il me semble que ca sert pour créer les fonctions avec un nombre d'arguments variables ex : printf)
 
Le terme CALLBACK est surtout employé pour les fonctions servant à gérer les procédure de fenetre ou de boite de dialogue mais aussi les threads.
 
par ex :
LRESULT CALLBACK WindowProc(HWND , UINT , WPARAM , LPARAM );
 
En général , tu passes le pointeur de cette fonction à une autre fonction qui va créer la fenetre ou le thread ( ou d'autres ...)

Reply

Marsh Posté le 26-03-2001 à 08:22:37    

une fonction callback sert a faire tout simplement un "call back" , c'est a dire que tu donnes son adresse en argument a une procedure quelconque qui lors de son traitement va la rappeller (=callback en anglais non?).

Reply

Marsh Posté le 26-03-2001 à 17:51:25    

OK merci tous.
Niveau bouquin donc, vous me conseillez quoi ?
merci encore =)

Reply

Marsh Posté le 27-03-2001 à 11:57:11    

const : constante (attention en C++ une globale const peux ne pas etre generee comme une variable mais comme un #define)
 
static pour une variable ou un fct globale : visible uniquement dans le fichier ou elle est definie
 
static pour une variable locale : conserve sa valeur d'un appel a l'autre (duree de vie d'une globale mais visible dans la fct seulement)
 
static pour un membre ou une methode : independant de l'instance
(en fait ce sont des globales)

Reply

Marsh Posté le 27-03-2001 à 12:07:07    

xilebo a écrit a écrit :

dans le source de VC++ le terme CALLBACK placé devant une fonction remplace le terme __stdcall  
(si tu mets __stdcall ou __cdecl devant ta fonction , elle ne gérera pas de la meme facon les parametres de la fonction. C'est au niveau de la libération de la mémoire que ca se passe mais je ne connais pas exactement le mecanisme.Il me semble que ca sert pour créer les fonctions avec un nombre d'arguments variables ex : printf)
 
Le terme CALLBACK est surtout employé pour les fonctions servant à gérer les procédure de fenetre ou de boite de dialogue mais aussi les threads.
 
par ex :
LRESULT CALLBACK WindowProc(HWND , UINT , WPARAM , LPARAM );
 
En général , tu passes le pointeur de cette fonction à une autre fonction qui va créer la fenetre ou le thread ( ou d'autres ...)




oui en fait c'est le nom genere et sutout la facon de passer les arguments.
en C ils sont passes en commencant par les derniers pour l'empilage comme ca la fonction les depile dans l'ordre, les pluspart des autres languages empiles les premiers en premiers. L'aventage de la methode C c'est que l'appele n'a pas a savoir combien d'argument il va avoir.
De meme a la fin de l'appel l'appele libere la pile alors qu'en C c'est l'appelant qui le fait.
 
La strategie C permet de gerer des methodes a nombre d'arguments variable. Or les CallBack de Windows font un hypothese sur les regles d'appels des callback d'ou le mot cle...
 
Il me semble que les processeurs sont optimises pour la convention ordinaire et pas la convention C ce qui explique que Ms ait choisi celle-ci.
 
Il y a aussi des histoires de decorations ajoutes par le C et le C++, le C ajoute systematiquement un _ au debut des noms, le C++ ajoute tout un mic-mac pour stocker les types des arguments etc... evidement dans le cas du callback aucun interet...

Reply

Marsh Posté le 27-03-2001 à 12:07:07   

Reply

Marsh Posté le 27-03-2001 à 16:29:25    

Salut
je l'ai déjà conseillé sur un autre post, mais il est vraiment bien: "Le language C", Collection "Le tout en poche", "Campus Press" (65FF). TU y trouveras bcp de choses pour moyen et avancé. C'est vraiment bien foutu. Mais bon, si tu es un expert, tu ne l'employera plus bcp. Mais je te le conseille absolument.
Si tu as des questions, mail moi.
Bye

Reply

Marsh Posté le 02-04-2001 à 18:42:01    

En fait le genre de bouquin ke je cherche porterait d'une part sur les flux, tout ce qui concerne l interaction entre le programme et les données de tout type de fichier exterieur, ki soit assez exhaustif en ce ki concerne les fonctions importantes dispos sous windows, et ki traite un peu d algorythmes et de trucs du genre.
Merchii

Reply

Marsh Posté le 02-04-2001 à 18:46:08    

Un tel bouquin n'existe pas.
Par contre tu peux en acheter 3/4:
- un bouquin sur le C++
- un bouquin sur la prog windows
- un bouquin sur l'algorithmique
- un bouquin sur les designs objet

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed