Blog Eskimon : les fonctions

Bonjour

J ai beaucoup de mal à comprendre le fonctionnement des fonctions

int x = 64;
int y = 192;
int somme = 0;


void setup()
{
  Serial.begin(9600);
}


void loop()
{
    maFonction(x, y);
    Serial.println(somme);
}

int maFonction(int param1, int param2)
{
    
    somme = param1 + param2;
    //somme = 64 + 192 = 255

    return somme;
}

Je ne comprends pas le lien entre param1 et x

Ensuite à quoi correspond le return somme

Merci de votre compréhension devant mon ignorance

Cordialement chriss

Bonjour, La fonction que tu cite est toute simple: tu fais appel à celle-ci

maFonction(x, y);

en lui donnant 2 paramètres (ici des chiffres) exemple: maFonction(1, 2)

puis en dessous tu définit ta fonction

int maFonction(int param1, int param2)

ici on dit que les( x,y) transmit avant sont mit respectivement dans param1 et param2. puis on y dit ce que la fonction doit faire:

somme = param1 + param2;

une simple addition, enfin il faut bien afficher le résultat

return somme;

va permettre de renvoyer le résultat de l'addition qui a été stockée dans la variable somme.

Il existe des langages qui définissent des procédures et des fonctions. Dans ce cas une procédure ne fait qu'actionner des mécanismes logiques et une fonction renvoi le résultat d'un calcul ou d'un test logique.

Pour obtenir une utilisation telle que

S = surface(x,y)

il faut que "surface" soit une fonction pour que le résultat du calcul x*y soit affecté à "S".

En C les auteurs ont décidé de ne faire que des fonctions. Simplement il y a des fonctions qui se comportent comme des fonctions avec l'instruction "return" pour obtenir le résultat du calcul et des fonctions qui se comportent comme des procédures et qui ne renvoient rien.

Dans la déclaration d'une fonction il faut faire précéder le nom de la fonction par un mot clé : On dispose de void, int, float, char,........ Si la fonction se comporte comme une procédure elle ne renverra rien, on utilise alors le mot "void" qui veut dire vide en anglais. Si la fonction se comporte comme une fonction elle renverra un résultat, il faut donc déclarer le type du résultat qu'elle renvoi. Exemple si la fonction renvoi un entier il faudra utiliser int.

Tout ceci n'est que l'application des règles du C/C++, il n'y a rien qui soit spécifique à arduino. Tu trouvera de meilleures explications en consultant des tutos de C ou C++

Un bon site :

http://c.developpez.com/cours/

merci à tous