acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 2014
-
8 juin 2007 à 23:39
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 2014
-
10 juin 2007 à 14:58
bonjour,
quelqu'un pourrait m'expliquer ce que signifie ce code pour nos compilateurs ?
int mafonction () {
return 54;
}
int main() {
int (*func)() = mafonction;
int k = (************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************func)();
printf(" %d\n",k);
}
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 9 juin 2007 à 08:39
Salut
dans ce cas, c'est equivalent a
k=mafonction();
en gtk, en C/Xchat, et autre, ca sert pour les callbacks.
La derniere fois que j'ai fait ca, j'avais un perso a faire bouger, et une fonction appellee a chaque tour,
cette fonction pouvait appeller 5 autres fonctions, selon que le perso soit gentil, phagocyteur, anticorps, visiteur etc..
certains se servent de l'heritage pour ne pas avoir a manipuler ces pointeurs
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 20146 9 juin 2007 à 14:19
ça c'est normal luhtor
c'est l'idée qu'une fonction est à la fois l'adresse du prologue de la fonction, et à la fois l'entité "fonctionnelle" (sizeof mafonction = 1 tout comme sizeof(void) !!!)
l'adresse de l'entité fonctionnelle étant l'adresse du prologue....
cs_vicenzo
Messages postés178Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention25 août 20101 10 juin 2007 à 11:24
[auteurdetail.aspx?ID= 161232 acx01b] : Pour info, le code que j'ai mis était ton code débarrassé des ******** en trop.
Merci de m'apprendre d'une fonction correspond à une adresse mémoire... C'es trop sympa !
Pour info je faisais déja du C que tu apprenais pythagore au collège...
Sinon les expressions k (*func)() et <gras>k func() </gras>sont toute les deux valables car elle exécutent toute les deux mafonction()
Pour ton information la vrai facon de faire est (*func)() ...
func() n'est qu'une forme de la première acceptée par la norme pour 'faire + simple'.
Donc avant de donner des lecons, revise ta norme !!!
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 10 juin 2007 à 11:31
Salut
j'adore les choses genre :
"Pour info je faisais déja du C que tu apprenais pythagore au collège..."
c'est tres constructif, et ne veut finalement pas dire grand chose... j'ai commence les echecs a 5 ans, et je me suis fait battre a 16 contre des gamins de 11 ans...
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 20146 10 juin 2007 à 14:58
bon je crois que la discussion ne sert pas à grand chose
personne n'a lu ma question de départ qui était: comment ça se fait qu'on puisse mettre autant d'étoiles que l'on veut et que ça passe quand même (à la compilation et à l'exécution)
vicenzo : j'ai pas l'impression d'avoir été agressif dans mon message juste que tu n'avais pas lu la question
et je ne sais pas ce que dit la norme sur les pointeurs de fonctions, mais apparement si ce que tu dis est vrai elle ne dit pas que des bonnes choses
( de toute façon mon code tout en haut me laisse penser que la norme est bizarre à ce sujet)