Procédure en c
Résolu/Fermé
giovedy
-
Modifié par giovedy le 6/10/2011 à 13:02
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 6 oct. 2011 à 14:27
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 6 oct. 2011 à 14:27
A voir également:
- Procédure en c
- Procédure de frigo vide ✓ - Forum Vos droits sur internet
- Procedure de taxe bara ✓ - Forum Matériel & Système
- Arnaque transcash sur Leboncoin. ✓ - Forum Consommation & Internet
- Le point d'entrée de procédure eventsetinformation est introuvable advapi32.dll - Forum Windows
- Le point d'entrée de procédure est introuvable dans la bibliothèque de liens dynamiques - Forum Jeux PC
4 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 6/10/2011 à 13:24
Modifié par KX le 6/10/2011 à 13:24
Les variables sont passées par copie, du coup c et d valent bien 9 et 10 à la fin de la procédure plus, mais la modification n'est pas répercutée sur les valeurs de a et c du main.
Il faut utiliser un & pour pouvoir faire un passage par variable : void plus(int &c, int &d) La confiance n'exclut pas le contrôle
Il faut utiliser un & pour pouvoir faire un passage par variable : void plus(int &c, int &d) La confiance n'exclut pas le contrôle
dna.factory
Messages postés
25384
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
29 novembre 2024
1 613
6 oct. 2011 à 13:32
6 oct. 2011 à 13:32
déja utiliser la mémoire c dans deux endroits pour des utilisations différentes, c'est MAL
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
6 oct. 2011 à 13:47
6 oct. 2011 à 13:47
Je ne vois pas le problème vu qu'elles sont toutes les deux utilisées en locale...
On ne peut quand même pas construire tout un programme en utilisant seulement une seule fois chaque nom de variable !
On ne peut quand même pas construire tout un programme en utilisant seulement une seule fois chaque nom de variable !
dna.factory
Messages postés
25384
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
29 novembre 2024
1 613
6 oct. 2011 à 14:06
6 oct. 2011 à 14:06
KX Oo
bien sur que SI
la seul exception étant le i de la boucle for (et encore, c'est mieux si on peut faire autrement)
C'est la regle numéro 1 en programation
chaque variable est unique, et explicite.
c'est encore plus important qu'un code commenté.
dans un programme de 10 lignes avec une procédure, c'est peut-etre pas important, quand tu devras dépanner un programme de 10 000 lignes avec des centaines de procédures et fonctions, et que ce n'est pas toi qui l'a fait... ou pire, c'est toi qui l'a fait, mais y'a 10 ans...
tu comprendras...
bien sur que SI
la seul exception étant le i de la boucle for (et encore, c'est mieux si on peut faire autrement)
C'est la regle numéro 1 en programation
chaque variable est unique, et explicite.
c'est encore plus important qu'un code commenté.
dans un programme de 10 lignes avec une procédure, c'est peut-etre pas important, quand tu devras dépanner un programme de 10 000 lignes avec des centaines de procédures et fonctions, et que ce n'est pas toi qui l'a fait... ou pire, c'est toi qui l'a fait, mais y'a 10 ans...
tu comprendras...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
6 oct. 2011 à 14:27
6 oct. 2011 à 14:27
Toi tu parlais de "la mémoire c" or ce n'est pas la même mémoire, vu que ce sont deux variables différentes, l'une est locale au main, l'autre en paramètre de fonctions. Il n'y a pas d'ambiguïté.
Effectivement on peut critiquer le fait d'utiliser deux fois le même nom, ou encore d'utiliser un nom avec une seule lettre... Mais dans ce genre de programmes on ne va pas chipoter !
Le message a été effacé, mais tout à l'heure quelqu'un proposait d'utiliser une variable globale à la place du c local au main, et là ça aurait été vraiment mal !!!
Mais bon, de toute façon ce n'était pas le problème, qui est résolu maintenant...
Effectivement on peut critiquer le fait d'utiliser deux fois le même nom, ou encore d'utiliser un nom avec une seule lettre... Mais dans ce genre de programmes on ne va pas chipoter !
Le message a été effacé, mais tout à l'heure quelqu'un proposait d'utiliser une variable globale à la place du c local au main, et là ça aurait été vraiment mal !!!
Mais bon, de toute façon ce n'était pas le problème, qui est résolu maintenant...
dna.factory
Messages postés
25384
Date d'inscription
mercredi 18 avril 2007
Statut
Modérateur
Dernière intervention
29 novembre 2024
1 613
6 oct. 2011 à 12:55
6 oct. 2011 à 12:55
pourquoi utiliser une procédure, c'est d'une fonction dont tu as besoin..
scaravenger
Messages postés
2685
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
30 janvier 2015
616
6 oct. 2011 à 13:08
6 oct. 2011 à 13:08
les variables C et D sont locales.
6 oct. 2011 à 13:37
Mais j'ai une petite erreur de compil sur cette ligne : void plus(int &c, int &d)
voici l'erreur : expected `;', `,' or `)' before `&' token
que me conseilles tu ?
6 oct. 2011 à 13:40
6 oct. 2011 à 13:46
Modifié par KX le 6/10/2011 à 13:53
Du coup, il y a peut-être plus simple que le code qui suit mais je ne sais plus trop :
6 oct. 2011 à 13:55