Udostępnij za pośrednictwem


Zwracany typ

Zwracany typ funkcji ustala rozmiar i typ wartości zwróconej przez funkcję i odpowiada specyfikatora typu w poniższej składni:

Składnia

  • Definicja funkcji:
    Specyfikatory deklaracji optseq atrybutu optlisty deklaracji; niewłaściwy deklarator optmieszanek oświadczenie

    / * seq atrybutu jest programu Microsoft * /

  • Specyfikatory deklaracji:
    Specyfikator klasy magazynowania deklaracji Specyfikatory opt

    Deklaracja Specyfikatory specyfikatora typu opt

    Typ kwalifikatora deklaracji Specyfikatory opt

  • Specyfikator typu:
    nieważne

    CHAR

    krótkie

    int

    długie

    Pływak

    podwójne

    podpisane

    niepodpisane

    Specyfikator struct lub Unii

    Specyfikator Enum

    Nazwa elementu TypeDef

Specyfikatora typu można określić wszelkie podstawowych struktura lub typ Unii.Jeśli nie zawierają specyfikatora typu, zwracany typ int zakłada, że.

Zwracany typ podane w definicji funkcji musi odpowiadać typowi zwrotu w deklaracji funkcji, gdzie indziej w programie.Funkcja zwraca wartość po return jest wykonywana instrukcja zawierający wyrażenie.Wyrażenie jest sprawdzane są konwertowane na typ zwracanej wartości, jeśli konieczne i zwrócone do punktu, w którym funkcja została wywołana.Jeżeli zadeklarowano funkcję z typem zwracanym void, instrukcja return zawierający wyrażenie generuje ostrzeżenie i nie jest obliczane wyrażenie.

Poniższe przykłady ilustrują wartości zwracane funkcji.

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 );
}

W tym przykładzie definiuje STUDENT typu z typedef deklaracji i definiuje funkcję sortstu mają STUDENT zwraca typ.Funkcja wybiera i zwraca jeden z jej struktury dwa argumenty.W kolejnych wywołaniach funkcji kompilator sprawdza, aby upewnić się, czy typy argumentów są STUDENT.

[!UWAGA]

Efektywności, zostałoby pogłębione poprzez przekazanie wskaźniki do struktury, a nie całą strukturę.

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 );
}

W tym przykładzie definiuje funkcję powrotu wskaźnik do tablicy znaków.Funkcja przyjmuje dwie tablice znaków (ciągi) jako argumenty i zwraca wskaźnik do krótszego z dwóch ciągów.Wskaźnik do tablicy wskazuje pierwszy elementów tablicy i jej typ; w ten sposób, zwracany typ funkcji jest wskaźnik do wpisz char.

Nie należy zadeklarować funkcji z int zwraca typ, zanim zadzwonisz do nich, mimo że prototypy zaleca się tak, że poprawny typ sprawdzania argumenty i zwracane wartości jest włączona.

Zobacz też

Informacje

C definicje funkcji