Namensräume
Varianten
Aktionen

Funktionen

Von cppreference.com
< c‎ | Sprache

Eine Funktion ist ein Konstrukt der C-Sprache, das eine zusammengesetzte Anweisung (den Funktionskörper) mit einem Bezeichner (dem Funktionsnamen) assoziiert. Jedes C-Programm beginnt die Ausführung von der main-Funktion, die entweder terminiert oder andere, benutzerdefinierte oder Bibliotheksfunktionen aufruft.

// function definition.
// defines a function with the name "sum" and with the body "{ return x+y; }"
int sum(int x, int y) 
{
    return x + y;
}

Eine Funktion wird durch eine Funktionsdeklaration oder eine Funktionsdefinition eingeführt.

Funktionen können null oder mehr Parameter akzeptieren, die aus den Argumenten eines Funktionsaufrufoperators initialisiert werden, und können einen Wert mittels der return-Anweisung an ihren Aufrufer zurückgeben.

int n = sum(1, 2); // parameters x and y are initialized with the arguments 1 and 2

Der Körper einer Funktion wird in einer Funktionsdefinition bereitgestellt. Jede nicht-inline(seit C99) Funktion, die in einem Ausdruck verwendet wird (sofern nicht unevaluiert), muss in einem Programm nur einmal definiert werden.

Es gibt keine verschachtelten Funktionen (außer dort, wo sie durch nicht standardmäßige Compilererweiterungen erlaubt sind): Jede Funktionsdefinition muss auf Datebene erscheinen, und Funktionen haben keinen Zugriff auf lokale Variablen des Aufrufers

int main(void) // the main function definition
{
    int sum(int, int); // function declaration (may appear at any scope)
    int x = 1;  // local variable in main
    sum(1, 2); // function call
 
//    int sum(int a, int b) // error: no nested functions
//    {
//        return  a + b; 
//    }
}
int sum(int a, int b) // function definition
{
//    return x + a + b; //  error: main's x is not accessible within sum
    return a + b;
}

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 6.7.7.4 Funktionsdeklaratoren (einschließlich Prototypen) (S: TBD)
  • 6.9.2 Funktionsdefinitionen (S: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 6.7.6.3 Funktionsdeklaratoren (einschließlich Prototypen) (S: 96-98)
  • 6.9.1 Funktionsdefinitionen (S: 113-115)
  • C11-Standard (ISO/IEC 9899:2011)
  • 6.7.6.3 Funktionsdeklaratoren (einschließlich Prototypen) (S: 133-136)
  • 6.9.1 Funktionsdefinitionen (S: 156-158)
  • C99-Standard (ISO/IEC 9899:1999)
  • 6.7.5.3 Funktionsdeklaratoren (einschließlich Prototypen) (S: 118-121)
  • 6.9.1 Funktionsdefinitionen (S: 141-143)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 3.5.4.3 Funktionsdeklaratoren (einschließlich Prototypen)
  • 3.7.1 Funktionsdefinitionen

[bearbeiten] Siehe auch

C++-Dokumentation für Deklarieren von Funktionen