Tipo de valor devuelto

Tipo de valor devuelto de una función establece el tamaño y el tipo de valor devuelto por la función y los corresponde al especificador de tipo en la sintaxis siguiente:

Sintaxis

  • definición de función:
    instrucciónoptcompuesta atributo-seqoptde la declaración-lista de declaradoresoptde los declaración-especificadores

    /* atributo-seq es Microsoft Específico *

  • declaración-especificadores:
    declaración-especificadores de almacenamiento-clase-especificador opt

    declaración-especificadores de especificador de tipo opt

    declaración-especificadores calificador de tipo opt

  • especificador de tipo:
    void

    char

    short

    Valor int.

    long

    float

    double

    Signed

    Unsigned

    struct-o-unión-especificador

    enum-especificador

    typedef-nombre

El especificador de tipo puede especificar cualquier fundamentalmente, estructura, o tipo de unión.Si no incluye el especificador de tipo, se supone el tipo de valor devuelto int .

El tipo de valor devuelto especificado en la definición de la función debe coincidir con el tipo de valor devuelto en las declaraciones de función a cualquier parte del programa.una función devuelve un valor cuando una instrucción de return que contiene una expresión se ejecuta.La expresión se evalúa, se convierte al tipo de valor devuelto en caso necesario, y devuelta al punto en el que la función se llamó.Si una función está declarada con el tipo de valor devuelto void, una instrucción return que contiene una expresión genera una advertencia y la expresión no se evalúa.

los ejemplos siguientes muestran los valores devueltos de la función.

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

Este ejemplo define el tipo de STUDENT con una declaración de typedef y define la función sortstu para tener el tipo de valor devuelto de STUDENT .La función seleccionada y devuelve uno de sus argumentos de dos estructuras.En las llamadas posteriores a la función, el compilador comprueba para asegurarse de los tipos de argumentos son STUDENT.

[!NOTA]

La eficacia sería mejorada pasando punteros a la estructura, en lugar de la estructura completa.

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

Este ejemplo define una función que devuelve un puntero a una matriz de caracteres.La función toma dos matrices de caracteres (cadenas) como argumentos y devuelve un puntero al menos de las dos cadenas.Un puntero a los puntos de una matriz al primero de los elementos de la matriz y tiene su tipo; así, el tipo de valor devuelto de la función es un puntero para escribir char.

No necesita declarar funciones con el tipo de valor devuelto de int antes de que se llame a, aunque se recomienda prototipos para habilitar la comprobación de tipo correcta en argumentos y valores devueltos.

Vea también

Referencia

Definiciones de funciones de C