Une bouffée d'air frais dans la robotique

Telecom Robotics

Tutorial C

Tutoriaux

Nos Robots

Connexion utilisateur

Telecom Robotics / Areabot

Une bouffée d'air dans la robotique

3 - Fonctions et fonction main

Un programme C est souvent composé de plusieurs fonctions, les unes en appelant d'autres. Les fonctions sont déclarées de la manière suivante : type_r&eacute;sultat nom_fonction(type_arg1 nom_arg1, type_arg2 nom_arg2.....) { corps de la fonction }; "type_résultat nom_fonction(type_arg1 nom_arg1, type_arg2 nom_arg2.....)" s'appelle le prototype de la fonction. On peut aussi écrire type_résultat nom_fonction(type_arg1 nom_arg1, type_arg2 nom_arg2.....);, cela signifie "bon il y aura la fonction nom_fonction qui prend tels arguments et renvoie tel résultat, mais je vais la définir plus tard". Ainsi la fonction peut être utilisée dans la définition d'autres fonctions, meme si le programme ne sait pas encore exactement ce qu'elle fait. Exemple : #include <stdio.h> ; int fonction1 (int i) ; int main (void) { int k ; printf(&quot;%d \n&quot;,k); fonction1(3) ; printf(&quot;%d \n&quot;,k); return 0 ; /* le return 0 permet de dire &agrave; l'OS que le main s'est correctemet termin&eacute; */ } int fonction1 (int i) { int j = i*i ; return j ; } </stdio.h> Examinons ce qui est écrit ci-dessus : #include <stdio.h> ; </stdio.h> voir la rubrique Librairies, include, headers int main (void) { int k ; printf(&quot;%d \n&quot;,k); fonction1(3) ; printf(&quot;%d \n&quot;,k); return 0 ; /* le return 0 permet de dire &agrave; l'OS que le main s'est correctemet termin&eacute; */ }

  • on déclare une variable locale k (car à l'intérieur de la fonction)
  • printf est une fonction de la lib stdio (standard intput-output), qui écrit en console la chaîne de caractère (string) passée en argument, %d signifie que l'on veut afficher une valeur entière inconnue à la compilation, qui sera la valeur de k
  • return est une fonction basique de C, elle renvoie le résultat de la fonction et marque sa fin
  • tout ce qui est entre /* et*/ est un commentaire, il ne sera pas pris en compte par le compilateur, et il faut mettre des commentaires pour expliquer ce que l'on fait !

Une fonction ne peux renvoyer qu'un seul résultat (si on veut obtenir plusieurs information, on peut soit créer une structure de donnée spécifique, utiliser des variables globales ou des pointeurs... ) Ok, il y a plusieurs fonctions dans un fichier de code, mais par laquelle le programme va-t-il commencer ? Il commencera par la fonction qui s'appelera "main". Cette fonction doit oblicatoirement apparaître dans le code. Généralement on la définie en premier, ou en dernier afin de la retrouver facilement dans le code.

 

Nos soutiens

Images aléatoires

DSC07259.JPG Untitled image 

Événements à venir

  • pas grand chose...

Contenu populaire

Parcourir les archives

« Mai 2008  
Lu Ma Me Je Ve Sa Di
      1 2 3 4
5 6 7 8 9 10 11
12 14 15 16 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

Syndication

Syndiquer le contenu