Por favor, compruebe el programa a continuación.C Puzzle - jugar con los tipos
#include <stdio.h>
struct st
{
int a ;
}
fn()
{
struct st obj ;
obj.a = 10 ;
return obj ;
}
int main()
{
struct st obj = fn() ;
printf ("%d", obj.a) ;
}
A continuación se presentan las preguntas
- ¿Cuál es la salida del programa?
¿Dónde está ';' terminando la declaración de 'struct st'?
Por ISO IEC 9899 - 1999 especificación, la declaración debe terminar con un ';'.
declaration-specifiers init-declarator-listopt ;
Si se toma la declaración de la 'estructura st' que representa sólo el tipo de retorno de la función 'fn', ¿cómo es visible a otras funciones (principal)?
Comeau se queja de la falta; después de la estructura y también que fn() no tiene tipo de retorno. – foraidt
¿Deberes? ;) Creo que la salida sería 10, formateada como decimal (supongo que eso es lo que% d significa) – invert
Específicamente dice: línea 3: error: definición de tipo no está permitido en la función return type declaration – foraidt