ISO/IEC 9899:201x Committee Draft — April 12, 2011 viewed in 5.1.2.2.3 Program termination
..reaching the } that terminates the main function returns a value of 0.
It says that when the return value is particularly stable in main(), 0 is automatically returned, but this code returns another value.
#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);
}
Compile:
gcc test.c
./a.out
sum is 15
echo $?
9/0 should come, but 9 came out
..reaching the } that terminates the main function returns a value of 0.
This rule has been set as standard C since 1999, and there is no decision on what value will come out if the return is not specified until C90.
If you specify the C99 compiler with -std=c99
in gcc, you will get 0.
© 2024 OneMinuteCode. All rights reserved.