warning: le type de retour par défaut est 'int' [-Wreturn-type]
Je suis un utilisateur de Linux qui a commencé à apprendre le C et je suis en train de compiler cette source que j'ai tapé:
#include <stdio.h>
main()
{
float c,d;
c = 10215.3;
d = c / 3;
printf("%3.2f\n",d);
return 0;
}
Il est compilé avec cela à l'aide d'un makefile que j'ai écrit:
cc -Wall -g printf.c -o printf
mais je suis de cet avertissement:
printf.c:2:1: attention: le type de retour par défaut à ‘int’ [-Wreturn-type]
il compile le code et j'obtiens le résultat souhaité, mais je veux comprendre ce que cela signifie
source d'informationauteur JoshD
Vous devez vous connecter pour publier un commentaire.
devrait être
En C89, la valeur par défaut type de retour est supposé être
int
c'est pourquoi il fonctionne.En C89, la valeur par défaut type de retour est int. Ce défaut a été supprimé en C99 et les compilateurs sont utiles pour vous rappeler que votre style C sans int avant main() est pas à jour.
Voir le C89 spécification de la Section 3.5.2 "spécificateurs de Type":
"Chaque liste de spécificateurs de type doit être l'un des jeux suivants: [...] + intsignésigné intou pas de spécificateurs de type".
Et dans le deuxième alinéa, de la sémantique: "Chacun des [...] définit désigne le même type, sauf que, pour peu-champs [blabla]". Donc ce qui veut dire "pas de spécificateurs de type" est le même que int.
En C99, la partie "ou pas spécificateur de type" est supprimé. (Mais vous pouvez toujours écrire signé sans int partie.)