Namespaces
Variants

Functions

From cppreference.net

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