Allons allons...
Les fonctions tu en utilises déjà plein, il n'y a plus qu'à écrire les tiennes. (En plus tu as mon exemple)
une fonction peut être déclarée et doit être définie.
La déclaration c'est que tu vois partout, dans stdio.h il n'y a que ça par exemple. C'est dire voilà, il y a une fonction qui existe et qui ressemble à ça. A partir de ce moment elle devient utilisable même si elle n'est pas encore connue complètement. On appelle aussi ça la "déclaration courte". En pratique cela consiste en la reprise du prototype de la fonction (-> [type de la valeur de retour] + nom + types des paramètres) sauf qu'on le termine par un ; au lieu de la définir.
void afficher_ligne( int grille[9][9], unsigned int iLigne );
A partir de maintenant je peux écrire du code qui appelle cette fonction car on connaît tous les élément nécessaires à son utilisation.
Cela sert aussi quand on veut écrire deux fonction qui s'appelle l'une l'autre. Il faut nécessaire que chacune soit écrit avant l'autre donc pour éviter ce problème insoluble (même avec un bon solvant. Oups désolé...) -> déclaration courte et hop, ça marche.
Il n' y a pas vraiment de piège dans les fonctions. Le seule truc à savoir c'est que les paramètres sont passés par copie. (/par valeur)
int GetNumberPlusOne( int n )
{
return n + 1;
}
void GetNumberPlusTwo( int n ) // interdiction d'avoir le même nom en C.
{
n = n + 2;
}
void GetNumberPlusThree( int *pN ) // interdiction d'avoir le même nom en C.
{
*pN = *pN + 3;
}
La première marche.
La deuxième ne fait rien car n est une copie de la valeur passée en paramètre et on ne modifie que la copie interne à la fonction.
La troisième est un passage par pointeur (/par adresse dira-t-on plus élégamment) La valeur passée par copie est une adresse mémoire. Connaissant cette adresse on peut modifier l'entier qui se trouve à cette adresse. Donc ça marche.
Autre intérêt de passer un paramètre par adresse : Si on a définit une structure de 400 octects, on ne les recopie pas à chaque appelle de fonction ou récupération de la valeur de retour.
Voilà, plus d'excuse! ^^
(En plus je les avais préparées avec amour)
M.
-> parce que un sudoku a trois dimension
meric pour ce que t'a fais je vais étudier ca
Je ne vois que lignes et colonnes, tu souhaiterais un tableau du genre:
int tableau[9][9][Z]; ?
Quelle est la troisième ?
M.