Freigeben über


Rückgabetyp

Der Rückgabetyp einer Funktion legt die Größe und den Typ des Werts, der von der Funktion zurückgegeben wird und entspricht dem Typspezifizierer in der folgenden Syntax:

Syntax

  • Funktionsdefinition:
    Spezifizierer deklariertoptATTRIBUTE-folgendeoptDeklarator Deklaration ListeoptVerbundanweisung

    ATTRIBUTE-folgendes /* */Microsoft-spezifische ist

  • Spezifizierer deklariert:
    Speicherklassenspezifizierer Deklaration Bezeichner opt

    Typspezifizierer Deklaration Bezeichner opt

    Spezifizierer Deklaration Qualifizierer TYPE opt

  • Typspezifizierer:
    void

    char

    short

    int

    long

    float

    double

    mit Vorzeichen

    unsigned

    Bezeichner Struktur-oder-UNION

    Spezifizierer Enumeration

    TypedefNAME

Der Typspezifizierer kann eine beliebige Basis, Struktur- oder Union-Typ angeben.Wenn Sie keinen Typspezifizierereinfügen, wird der Rückgabetyp int angenommen.

Der Rückgabetyp, der in der Funktionsdefinition angegeben ist, muss der Rückgabetyp in die Deklarationen der Funktion an anderer Stelle im Programm entsprechen.Eine Funktion gibt einen Wert zurück, wenn eine return-Anweisung, die einen Ausdruck enthält, ausgeführt wird.Der Ausdruck wird ausgewertet zu der Stelle, konvertiert in den Rückgabewerttyp und ggf. zurückgegeben, an denen die Funktion aufgerufen wurde.Wenn eine Funktion mit Rückgabetyp deklariert voidgeneriert, die eine Return-Anweisung einen Ausdruck enthält, wird eine Warnung angezeigt, und der Ausdruck nicht ausgewertet.

Die folgenden Beispiele veranschaulichen Rückgabewerte Funktion.

typedef struct  
{
    char name[20];
    int id;
    long class;
} STUDENT;

/* Return type is STUDENT: */

STUDENT sortstu( STUDENT a, STUDENT b )
{
    return ( (a.id < b.id) ? a : b );
}

Dieses Beispiel definiert den STUDENT-Typ mit einer typedef Deklaration und definiert die Funktion sortstu , um STUDENT Rückgabetyp verfügen.Die Funktion wählt aus und gibt eines seiner Argumente mit zwei Strukturen zurück.Bei nachfolgenden Aufrufe der Funktion sind die Compiler überprüft, ob der Argumenttypen zu vergewissern STUDENT.

HinweisHinweis

Effizienz wird erhöht, indem Zeiger auf die Struktur, statt die gesamte Struktur erfolgreich war.

char *smallstr( char s1[], char s2[] )
{
    int i;

    i = 0;
    while ( s1[i] != '\0' && s2[i] != '\0' )
        i++;
    if ( s1[i] == '\0' )
        return ( s1 );
    else
        return ( s2 );
}

In diesem Beispiel wird eine Funktion, die einen Zeiger auf ein Array von Zeichen zurück.Die Funktion akzeptiert zwei Zeichenfolgen) (Zeichenarrays als Argumente und gibt einen Zeiger auf den kürzeren der beiden Zeichenfolgen zurück.Ein Zeiger auf ein Array von zeigt auf den ersten und den Typ der Arrayelemente. Daher ist der Rückgabetyp der Funktion ein Zeiger, um chareinzugeben.

Sie müssen nicht Funktionen mit int Rückgabetyp deklariert werden, bevor Sie sie aufrufen, obwohl Prototypen empfohlen werden, damit eine ordnungsgemäße Typüberprüfung für Argumente und Rückgabewerte aktiviert ist.

Siehe auch

Referenz

C-Funktionsdefinitionen