¿Qué es la vida útil de un valor de retorno de función?
Leí sobre elreturn
valores entre llamadas a funciones,
y experimenté con el siguiente fragmento de código:
/* file structaddr.c */
#include <stdio.h>
#define MSIZE 10
struct simple
{
char c_str[MSIZE];
};
struct simple xprint(void)
{
struct simple ret = { "Morning !" };
return ret;
}
int main(void)
{
printf("Good %s\n", xprint().c_str);
return 0;
}
El código se compila sin errores y advertencias.
Probado conGCC 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) yVisual C ++ compiladores
gcc -m32 -std=c99 -Wall -o test structaddr.c
cl -W3 -Zi -GS -TC -Fetest structaddr.c
Salida:
Buenos días !
Estoy un poco confundido por el resultado.
El código está escrito correctamente?
Mi pregunta :
¿Cuál es la visibilidad de la función?return
valor (matriz de unstruct
en el ejemplo anterior), y cómo acceder adecuadamente a ellos?
Donde termina la vida de unreturn
valor?