Tipo restituitoReturn Type

Il tipo restituito di una funzione determina la dimensione e il tipo del valore restituito dalla funzione e corrisponde all'identificatore di tipo nella sintassi seguente:The return type of a function establishes the size and type of the value returned by the function and corresponds to the type-specifier in the syntax below:

SintassiSyntax

function-definition:function-definition:
declaration-specifiers optattribute-seq optdeclarator declaration-list optcompound-statementdeclaration-specifiers optattribute-seq optdeclarator declaration-list optcompound-statement

/* attribute-seq è specifico di Microsoft //* *attribute-seq is Microsoft Specific */

declaration-specifiers:declaration-specifiers:
storage-class-specifier declaration-specifiers optstorage-class-specifier declaration-specifiers opt

type-specifier declaration-specifiers opttype-specifier declaration-specifiers opt

type-qualifier declaration-specifiers opttype-qualifier declaration-specifiers opt

type-specifier:type-specifier:
voidvoid

charchar

shortshort

intint

longlong

floatfloat

doubledouble

signedsigned

unsignedunsigned

struct-or-union-specifierstruct-or-union-specifier

enum-specifierenum-specifier

typedef-nametypedef-name

type-specifier può specificare qualsiasi struttura o tipo di unione fondamentale.The type-specifier can specify any fundamental, structure, or union type. Se non si include type-specifier, viene presupposto il tipo restituito int.If you do not include type-specifier, the return type int is assumed.

Il tipo restituito fornito nella definizione di funzione deve corrispondere al tipo restituito nelle dichiarazioni della funzione in altre parti del programma.The return type given in the function definition must match the return type in declarations of the function elsewhere in the program. Una funzione restituisce un valore quando un'istruzione return che contiene un'espressione viene eseguita.A function returns a value when a return statement containing an expression is executed. L'espressione viene valutata, convertita in un tipo di valore restituito se necessario e viene restituita al punto in cui la funzione è stata chiamata.The expression is evaluated, converted to the return value type if necessary, and returned to the point at which the function was called. Se una funzione è dichiarata con il tipo restituito void, un'istruzione return che contiene un'espressione genera un avviso e l'espressione non viene valutata.If a function is declared with return type void, a return statement containing an expression generates a warning and the expression is not evaluated.

Negli esempi seguenti vengono illustrati i valori restituiti dalla funzione.The following examples illustrate function return values.

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

Viene definito il tipo STUDENT con una dichiarazione typedef e viene definita la funzione sortstu per avere il tipo restituito STUDENT.This example defines the STUDENT type with a typedef declaration and defines the function sortstu to have STUDENT return type. La funzione selezionata e restituisce uno dei propri argomenti struttura.The function selects and returns one of its two structure arguments. Nelle successive chiamate alla funzione, il compilatore controlla per verificare che i tipi di argomento siano STUDENT.In subsequent calls to the function, the compiler checks to make sure the argument types are STUDENT.

Nota

L'efficienza risulta miglioratala passando di puntatori alla struttura, piuttosto che l'intera struttura.Efficiency would be enhanced by passing pointers to the structure, rather than the entire structure.

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

Nell'esempio seguente viene definita una funzione che restituisce un puntatore a una matrice di caratteri.This example defines a function returning a pointer to an array of characters. La funzione accetta due matrici di caratteri (stringhe) come argomenti e restituisce un puntatore alla più breve delle due stringhe.The function takes two character arrays (strings) as arguments and returns a pointer to the shorter of the two strings. Un puntatore a un elemento punta al primo degli elementi della matrice e ha il suo tipo; pertanto, il tipo restituito della funzione è un puntatore al tipo char.A pointer to an array points to the first of the array elements and has its type; thus, the return type of the function is a pointer to type char.

Non è necessario dichiarare le funzioni con il tipo restituito int prima di chiamarle, sebbene i prototipi siano consigliati in modo da consentire il controllo del tipo corretto per gli argomenti e i valori restituiti.You need not declare functions with int return type before you call them, although prototypes are recommended so that correct type checking for arguments and return values is enabled.

Vedere ancheSee Also

Definizioni di funzioni CC Function Definitions