Bonsoir à tous,
qui peut m'expliquer pourquoi l'instruction "return" n'est pas suivi d'aucune valeur???
et merci en avance.
-----
Bonsoir à tous,
qui peut m'expliquer pourquoi l'instruction "return" n'est pas suivi d'aucune valeur???
et merci en avance.
Moi.qui peut m'expliquer pourquoi l'instruction "return" n'est pas suivi d'aucune valeur???
Parce que la fonction doit retourner un void, donc rien!
D'ailleurs, placé tel quel, le return se sert à rien car la fonction se serait de toutes manières terminée.
A+
Bonsoir,
Jack a répondu a votre question.
Cependant, il me semble que ce code est invalide ?!
Dans la définition de la fonction main, il n'y pas de type, donc si le compilo accepte ça (ce qui n'est pas obligatoire je crois), a priori le type par défaut est "int" (entier)
Donc dans ce cas, par contre, l'usage de l'instruction return est obligatoire (et cette fois ci il sera indispensable de lui passer une valeur !)
Quoi qu'il en soit le mieux c'est d'être explicite, et de définir clairement le type du main
A+,
si vous voyez bien je crois que la fonction est précédée d'un "void".
Avec un compilateur C standard et pour une norme du C "récente", la fonction main doit effectivement retourner un entier. Mais comme on ne sait rien du compilateur en question ...Bonsoir,
Jack a répondu a votre question.
Cependant, il me semble que ce code est invalide ?!
Dans la définition de la fonction main, il n'y pas de type, donc si le compilo accepte ça (ce qui n'est pas obligatoire je crois), a priori le type par défaut est "int" (entier)
Donc dans ce cas, par contre, l'usage de l'instruction return est obligatoire (et cette fois ci il sera indispensable de lui passer une valeur !)
Quoi qu'il en soit le mieux c'est d'être explicite, et de définir clairement le type du main
A+,
Je ne répondais en fait qu'au problème de la présence du return dans la fonction.
A qui t'adresses-tu? Est-ce que ma réponse précédente convenait? Essaie d'être plus précis dans tes réponses.
A+
Dernière modification par Jack ; 05/07/2012 à 10h16.
@ anamir-22 :Puiqu'on en est dans les détails du programme, je doute que celui-ci produise ce qui était attendu. Tu vas donc voir s'afficher:
1
1
etc.
1
1
1
A+
[QUOTE=
A qui t'adresses-tu? Est-ce que ma réponse précédente convenait? Essaie d'être plus précis dans tes réponses.
A+[/QUOTE]
ici j'adresse a lucas.
" Tu vas donc voir s'afficher:
1
1
etc.
1
1
1"
je ne sais pas tu veux dire quoi??
@ Jack, donc il y a des fautes au programme.
Bonjour
J'imagine que ce que tu souhaites faire correspondrait plus à ça :Code:#include <stdio.h> int n = 10; void fonction(int n) { printf("appel numéro %d\n", n); } main() { int i; for (i=0; i<n; i++) fonction(i); }
c'est bien PA5CAL, maintenant je peux dire ça marche.
merci a tous.
Je trouve qu'il était préférable de laisser anamir trouver l'erreur tout seul car ça me semble plus formateur que de donner la solution.
Alors dans ce cas, il peut essayer avec la méthode que j'ai suggérée :P (sans passer d'argument à "void fonction" et en déclarant une variable "static" dans cette fonction)
A+,
la correction de PA5CAL me semble claire je crois que je vais rien ajouter .
et merci à tous.
Je pense que ce que veut anamir-22, c'est rajouter le mot-clef "static" devant "int n"
Petit commentaire : ça ne sert à rien de déclarer la fonction (ie. "void fonction();") juste avant de la définir (ie. "void fonction { ...*}").
Valentin
Oups, je n'avais pas vu la deuxième page du fil.