Je viens de lirePourquoi la fonction principale ne renvoie pas 0 ici?
ISO/IEC 9899: Comité 201x Projet - 12 Avril, 2011
où je l'ai trouvé sous 5.1.2.2.3 la fin du programme
..reaching the } that terminates the main function returns a value of 0.
cela signifie si vous ne spécifiez aucune instruction de retour dans main()
, et si le programme s'exécute avec succès, alors à l'accolade de fermeture} de main retournera 0.
Mais dans le foll Code du fait que je ne spécifiez aucune instruction de retour, mais il ne retourne pas 0
#include<stdio.h>
int sum(int a,int b)
{
return (a + b);
}
int main()
{
int a=10;
int b=5;
int ans;
ans=sum(a,b);
printf("sum is %d",ans);
}
compilez
gcc test.c
./a.out
sum is 15
echo $?
9 // here it should be 0 but it shows 9 why?
Avez-vous compilé avec un compilateur C99 (ou supérieur)? – pmg
+1 pour avoir la patience de lire les spécifications ..... – Asher
J'ai compiler avec gcc sans option/drapeau supplémentaire? –