Condividi tramite


Tipo restituito

Il tipo restituito della funzione a determinare la dimensione e il tipo del valore restituito dalla funzione e corrisponde all'tipo-identificatore nella sintassi di seguito:

Sintassi

  • definizione di funzione:
    dichiarazione-identificatori scegliereattributo-seguente sceglieredichiarazione-elenco del dichiaratore sceglierecomposto-rendiconto

    /* attributo-seguente è Microsoft specifico */

  • dichiarazione-identificatori:
    dichiarazione-identificatori dell'archiviazione-classe-identificatore scegliere

    dichiarazione-identificatori dell'tipo-identificatore scegliere

    dichiarazione-identificatori di tipo-qualificatore scegliere

  • identificatore del tipo:
    void

    char

    short

    int

    long

    float

    double

    con segno

    senza segno

    struct-o-unione-identificatore

    enum-identificatore

    typedef-nome

identificatore del tipo possibile specificare qualsiasi foundation, struttura, o un tipo di unione.Se non si importano identificatore del tipo, il tipo restituito int si presume.

Il tipo restituito fornito nella definizione di funzione deve corrispondere al tipo restituito nelle dichiarazioni di funzione in altre parti del programma.una funzione restituisce un valore quando a return l'istruzione che contiene un'espressione viene eseguito.L'espressione viene valutata, convertita al tipo di valore restituito se necessario e viene restituita al punto in cui la funzione è stata chiamata.se una funzione è dichiarata con tipo restituito void, un'istruzione return che contiene un'espressione genera un avviso e l'espressione non viene valutata.

Negli esempi seguenti vengono illustrati i valori restituiti delle funzioni.

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

In questo esempio viene definita STUDENT tipo con un oggetto typedef la dichiarazione e definisce la funzione sortstu per disporre STUDENT tipo restituito.La funzione selezionata e restituisce uno dei propri argomenti di due strutture.Nelle successive chiamate alla funzione, il compilatore per verificare i tipi di argomento sono STUDENT.

[!NOTA]

L'efficienza risulta migliorato passaggio di puntatori alla struttura, anziché l'intera struttura.

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 questo esempio viene definita una funzione che restituisce un puntatore a una matrice di caratteri.La funzione accetta due matrici di caratteri (stringhe) come argomenti e restituisce un puntatore a più breve delle due stringhe.Un puntatore agli elementi di una matrice al primo degli elementi di matrice e dispone di tipo; pertanto, il tipo restituito della funzione è un puntatore al tipo char.

Non è necessario dichiarare le funzioni con int tipo restituito prima di chiamare, sebbene i prototipi è consiglino in modo da consentire il controllo di tipo corretto per gli argomenti e valori restituiti.

Vedere anche

Riferimenti

Definizioni di funzioni c