Déclaration dans sous-programme

Fermé
Breton22000 Messages postés 9 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 24 mai 2016 - 9 mai 2016 à 18:33
Breton22000 Messages postés 9 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 24 mai 2016 - 9 mai 2016 à 21:27
Bonjour,

J'aimerais savoir quand, et quelles variables il faut déclarer entre parenthèses lors des déclarations de sous-programmes, et lors de leur appel.

Merci d'avance !



2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 816
9 mai 2016 à 18:40
Bonjour,

Cela dépend du prototype de la fonction appelée.
Exemple :
typeF nomFonction (typeA a, typeB b) {
     /*corps de la fonction*/
}

int main(void) {
     typeA a=...;
     typeB b=...;
     typeF f;
     /*appel de la fonction*/
     f=nomFonction(a,b);
     /*etc.*/
     return 0;
}

Vu la question, je pense que tu débutes. Je te conseille la lecture du tuto : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c
1
Breton22000 Messages postés 9 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 24 mai 2016
9 mai 2016 à 19:15
Merci pour la réponse rapide.
En fait le problème est un peu plus compliqué que ca...
Je fais un programme avec de nombreux sous programmes et certains ne demandent pas de variables lors de la déclaration des prototypes
exemple: (le sous programme là marche très bien).

prototype:
void nomjoueur();

dans le main:
nomjoueur(jr[2].nom);

en dessous, écriture du sous programme:
void nomjoueur(S_joueur jr[])


par contre,
lorsque je veux faire un sous programme avec un peu plus de valeurs à entrer (tableau, tableau de structure, variables...) cela ne marche pas. Je ne sais pas comment rentrer les différentes variables et à quel moment le faire.

exemple:
prototype:
void modifgrille();


dans le main:
modifgrille(jr[2],tab,i);


en dessous, écriture du sous programme:
void modifgrille(S_joueur jr[],char grille[LO][LA],int i)

merci pour l'aide !
0
Dalfab Messages postés 703 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 1 mars 2023 100
9 mai 2016 à 20:11
Bonjour,
Le langage C permet d'utiliser des prototypes sans indiquer les paramètres, il est pourtant très utile de les indiquer dès le prototype, la ligne est alors identique au début la fonction à part qu'elle se termine par un ';'.
L'avantage est que lors de l'appel dans le main le compilateur pourra signaler par une erreur ou un warning si les paramètres ne correspondent pas à ceux attendus.

Si la question est : "que faut-il passer en paramètre à un fonction?" Et bien, il faut lui passer l'ensemble des données dont elle aura besoin, et si des données sont à modifier il faut aussi ajouter des pointeurs sur ces données.
1
Breton22000 Messages postés 9 Date d'inscription jeudi 5 mai 2016 Statut Membre Dernière intervention 24 mai 2016
9 mai 2016 à 21:27
Merci beaucoup pour ta réponse ! C'est plus clair maintenant ! :)
0