Functions
Une fonction est une construction du langage C qui associe un compound statement (le corps de la fonction) à un identifier (le nom de la fonction). Chaque programme C commence son exécution à partir de la main function , qui soit se termine, soit appelle d'autres fonctions définies par l'utilisateur ou des fonctions de bibliothèque.
// définition de fonction. // définit une fonction nommée "sum" avec le corps "{ return x+y; }" int sum(int x, int y) { return x + y; }
Une fonction est introduite par une déclaration de fonction ou une définition de fonction .
Les fonctions peuvent accepter zéro ou plusieurs paramètres , qui sont initialisés à partir des arguments d'un opérateur d'appel de fonction , et peuvent renvoyer une valeur à leur appelant au moyen de l' instruction return .
int n = sum(1, 2); // les paramètres x et y sont initialisés avec les arguments 1 et 2
Le corps d'une fonction est fourni dans une définition de fonction . Chaque fonction non- inline (depuis C99) utilisée dans une expression (sauf si non évaluée ) doit être définie une seule fois dans un programme.
Il n'y a pas de fonctions imbriquées (sauf là où cela est autorisé via des extensions non standard du compilateur) : chaque définition de fonction doit apparaître au niveau de la portée du fichier, et les fonctions n'ont pas accès aux variables locales de l'appelant :
int main(void) // définition de la fonction principale { int sum(int, int); // déclaration de fonction (peut apparaître dans n'importe quelle portée) int x = 1; // variable locale dans main sum(1, 2); // appel de fonction // int sum(int a, int b) // erreur : pas de fonctions imbriquées // { // return a + b; // } } int sum(int a, int b) // définition de fonction { // return x + a + b; // erreur : x de main n'est pas accessible dans sum return a + b; }
Références
- Norme C23 (ISO/IEC 9899:2024):
-
- 6.7.7.4 Déclarateurs de fonction (incluant les prototypes) (p: TBD)
-
- 6.9.2 Définitions de fonction (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 6.7.6.3 Déclarateurs de fonction (incluant les prototypes) (p: 96-98)
-
- 6.9.1 Définitions de fonction (p: 113-115)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 6.7.6.3 Déclarateurs de fonction (incluant les prototypes) (p: 133-136)
-
- 6.9.1 Définitions de fonction (p: 156-158)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 6.7.5.3 Déclarateurs de fonction (incluant les prototypes) (p: 118-121)
-
- 6.9.1 Définitions de fonction (p: 141-143)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 3.5.4.3 Déclarateurs de fonction (incluant les prototypes)
-
- 3.7.1 Définitions de fonction
Voir aussi
|
Documentation C++
pour
Déclarer des fonctions
|