Inconvénients possibles des fonctions imbriquées en C ?

razuki Messages postés 242 Date d'inscription lundi 17 décembre 2007 Statut Membre Dernière intervention 5 décembre 2012 - 16 août 2009 à 22:41
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 17 août 2009 à 00:40
Bonjour,
j'aimerais savoir quel pourrait être l'inconvénient si je définis une fonction2 dans une autre foncton1 et que je fais appel à fonction2 dans fonction 1. Voici mon code :


extern pam_sm_authenticate(pamh, ... ) {
     int use_lp = 0
     ...
     ...
 
     void *ask_for_login(pamh) {
          use_lp = 1;
          printf("please enter your login\n");
          ...
     }
 
     pthraed_create(&my_thread, NULL, ask_for_login, void* );
 
return PAM_SUCCESS;
}



En effet, ces deux fonctions utilisent plusieurs variables en commun. J'ai eu cette idée d'imbriquer les fonctinos afin d'éviter de créer une structure à passer en paramètre pour faire communiquer les variables ( les champs de la structure ), qui me semble lourd à gérer dans mon programme.

1 réponse

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
17 août 2009 à 00:40
Non, non, non...
Il est interdit de définir une fonction à l'intérieur d'une autre; d'ailleurs, si ce truc-là compile, change de compilateur

Et puis, même si c'était possible, tu ne peux pas partager des variables entre deux fonctions qui ne sont pas dans le même thread; les zones de pile sont complètement différentes etc... il faut effectivement passer les paramètres dans une structure.
0
Rejoignez-nous