Veuillez vérifier le programme ci-dessous.C Puzzle - jouer avec les types
#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) ;
}
Voici les questions
- Quelle est la sortie du programme?
Où est ';' mettre fin à la déclaration de «struct st»?
Selon la spécification ISO CEI 9899 - 1999 , la déclaration doit se terminer par un ';'.
declaration-specifiers init-declarator-listopt ;
Si la déclaration du « struct st » est prise qui ne représente que le type de retour de la fonction « fn », comment est-il visible à d'autres fonctions (principal)?
Comeau se plaint du manque; après la structure et aussi que fn() n'a pas de type de retour. – foraidt
Travail à domicile? ;) Je pense que la sortie serait 10, formatée en décimal (je suppose que c'est ce que% d signifie) – invert
Spécifiquement il dit: ligne 3: erreur: définition de type n'est pas autorisée dans la déclaration de type de retour de fonction – foraidt