Я просто читал
Проект ИСО/МЭК 9899: 201x - 12 апреля 2011 г.
в котором я нашел в соответствии с 5.1.2.2.3 Окончание программы
..reaching the } that terminates the main function returns a value of 0.
это означает, что если вы не укажете какой-либо оператор возврата в main()
, и если программа выполняется успешно, то в закрывающей скобке} main вернет 0.
Но в следующем коде я не указываю никакого оператора return, но он не возвращает 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);
}
компилировать
gcc test.c
./a.out
sum is 15
echo $?
9 // here it should be 0 but it shows 9 why?